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

  • 预期的typesID资源
  • Kotlin + Dagger注入问题取决于设备的Android版本/ SDK(?)
  • Volley-Mysql,Kotlintypes不匹配错误
  • 错误:(2,0)无法find方法'org.gradle.api.internal.file.DefaultSourceDirectorySet
  • 我怎样才能禁用Kotlin的onTouch
  • 创建XML文件时出现卡顿exception
  • 相对布局参数在kotlin
  • 将字节数组转换为Kotlin中的字符串
  • Android Studio 3 Kotlin版本
  • 如何使用proguard牙签规则?
  • Kotlin到Java(图书馆帮助)
  • Kotlin language will be the best programming language for Android.