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. 当我做一个干净的生成和部署应用程序,我得到NoClassDefFoundErrorexception。 但是,如果我再次部署它工作得很好。 有什么建议么? 我在课堂上没有任何注释,所以我没有申请kapt插件。

注意:我正在使用最新的kotlin 1.0.4。 我也有即时运行禁用。

3 Solutions collect form web for “Kotlin类NoClassDefFoundError崩溃”

转到Files > Settings并完全关闭Instant Run ,我的意思是所有checkbox应该取消选中。

清理和重建项目。

那么它应该工作

编辑:正如你所说,即时是禁用的 – 使用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,请看看这个video。

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

从Java调用它们后缀ktlin类。

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

更多详情可在这find

  • 在Android中使用kotlin进行自定义视图的类DSL的OnClick监听器
  • SocketException:sendto失败:EBADF(坏文件描述符)
  • 在kotlin android项目中使用intellij-markdown
  • 通过kotlin中的匿名内部对象修改外部类
  • Android:与Butterknife的Kotlin
  • 从Kotlin扩展Java参数化接口
  • 条目中的空值:blameLogFolder = null。 在android工作室
  • 如何在RxJava 2和Android中延迟onError()?
  • KotlinReflectionInternalError数据类
  • 如何创建Kotlin DSL - DSL语法Kotlin
  • 什么在我的gradle文件仍然保证警告:“配置'编译'已经过时,并已被取代'实施'”?
  • Kotlin language will be the best programming language for Android.