我們的Android應用程序的每一個第二輪,我們得到了說的Android科特林:java.lang.NoClassDefFoundError:失敗的分辨率:<KotlinObject>
java.lang.NoClassDefFoundError: Failed resolution of: Lin/blahapp/xxx/BlahUtil
BlahUtil崩潰是在@JvmStatic註釋的科特林對象它。我從Android應用程序的其餘部分調用這些靜態方法(All in java)。
我們使用multidex 1.0.1。
我在Android 2.1.2工作室使用JDK 7
相關gradle這個CONFIGS:
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
minSdkVersion 16
targetSdkVersion 23
}
dexOptions {
incremental true
dexInProcess true
javaMaxHeapSize "10g"
preDexLibraries true
}
buildscript {
ext.kotlin_version = '1.0.3'
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
apply plugin: 'kotlin-android'
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
compile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
}
跟蹤:
at in.blahapp.xxx.OurActivity
at android.app.Activity.performCreate(Activity.java:6251)
at ndroid.app.Instrumentation.callActivityOnCreate
at android.app.ActivityThread.performLaunchActivity
at android.app.ActivityThread.handleLaunchActivity
at android.app.ActivityThread.-wrap11
at android.app.ActivityThread$H.handleMessage
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.ClassNotFoundException: Didn't find class "in.blahapp.xxx.BlahUtil" on path: DexPathList[[dex file ....
這是否始終發生,或者僅在每一次構建中(或者在另一種變體中,僅在第一次構建時)? – AndroidEx
通常在第一次運行之後就不會發生乾淨的構建。當我進行一些更改並再次運行時,在第二次運行時崩潰。第三次運行。如果我再次進行更改,則會在下一次運行時崩潰。然後在運行之後運行......等等。 – letronje
這聽起來很像[這個bug](https://youtrack.jetbrains.com/issue/KT-10733)。我在第一次清理編譯時沒有找到(=刪除)Kotlin類,但在第二個增量構建中出現了另一個此bug的變體。它也在google tracker上討論過,結果是我們必須等待android gradle插件2.3的發佈。這個問題阻止了我將Kotlin介紹給我的團隊,不幸的是,我沒有任何建議與您分享。 – AndroidEx