Kotlin类NoClassDefFoundError崩溃
我有一个现有的Android项目,使用以下库:
- AutoValue
- Dagger2
- RxJava
- Retrolambda
我正在尝试添加Kotlin支持,以便我可以将项目慢慢迁移到Kotlin。 这是我所做的。
- 增加了Kotlin依赖。
-
将其中一个类转换为Kt类,并转移到
src/main/kotlin/..package..
-
源集中添加了kotlin。 sourceSets {main.java.srcDirs + ='src / main / kotlin'}
-
当我做一个干净的生成和部署应用程序,我得到NoClassDefFoundError异常。 但是,如果我再次部署它工作得很好。 有什么建议么? 我在课堂上没有任何注释,所以我没有申请
kapt
插件。
注意:我正在使用最新的kotlin 1.0.4。 我也有即时运行禁用。
转到Files > Settings
并完全关闭Instant Run
,我的意思是所有复选框应该取消选中。
清理和重建项目。
那么它应该工作
编辑:正如你所说,即时功能被禁用 – 使用protip
检查你的配置,并更新Gradle和Android Studio,如果你不使用最新的。
根据这个问题 ,将Gradle插件版本从2.10改为2.14.1可能会有所帮助。
Protip:使用组合Ctrl + Shift + A来查找类似的命令
-
Configure Kotlin in Project
-
Configure Kotlin Updates
-
Convert Java File to Kotlin
首先你需要用kotlin配置你的android studio,为此需要在android studio中添加kotlin插件,然后需要添加依赖关系,然后将java类转换为kotlin,请看看这个视频。
从Java调用它们后缀ktlin类。
否则,请在Kotlin类的包之前添加@file:JvmName("Utils")
,如果您必须在java中调用它,并使用您希望Utils
任何自定义名称。
更多细节可以在这里找到