Kotlin类NoClassDefFoundError崩溃

我有一个现有的Android项目,使用以下库:

  1. AutoValue
  2. Dagger2
  3. RxJava
  4. Retrolambda

我正在尝试添加Kotlin支持,以便我可以将项目慢慢迁移到Kotlin。 这是我所做的。

  1. 增加了Kotlin依赖。
  2. 将其中一个类转换为Kt类,并转移到src/main/kotlin/..package..

  3. 源集中添加了kotlin。 sourceSets {main.java.srcDirs + ='src / main / kotlin'}

  4. 当我做一个干净的生成和部署应用程序,我得到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,请看看这个视频。

https://www.youtube.com/watch?v=DN2EDdycZ3c

从Java调用它们后缀ktlin类。

否则,请在Kotlin类的包之前添加@file:JvmName("Utils") ,如果您必须在java中调用它,并使用您希望Utils任何自定义名称。

更多细节可以在这里找到