我在我的应用中使用Kotlin
;但是,在较低的API设备上进行测试时,它会在启动时崩溃。
即使将调试器附加到Splash onCreate
的{{1}},它仍会在任何断点之前崩溃。
我能够获得一次callstack,但我无法获得任何其他的callstack。
Activity
Caused by: java.lang.NoClassDefFoundError: kotlin.jvm.internal.Intrinsics
哪个指向:
╔════════════════════════════════════════════════════════════════════════════════════════
║ Thread: main
╟────────────────────────────────────���───────────────────────────────────────────────────
║ AppCompatDelegateImplBase$1.uncaughtException (AppCompatDelegateImplBase.java:66)
║ App$1.uncaughtException (App.java:59)
╟────────────────────────────────────────────────────────────────────────────────────────
║ java.lang.ExceptionInInitializerError
║ at com.my_company.app.ui.shared.BaseActivity.onStart(BaseActivity.kt:164)
║ at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1163)
║ at android.app.Activity.performStart(Activity.java:5018)
║ at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2032)
║ at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
║ at android.app.ActivityThread.access$600(ActivityThread.java:130)
║ at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
║ at android.os.Handler.dispatchMessage(Handler.java:99)
║ at android.os.Looper.loop(Looper.java:137)
║ at android.app.ActivityThread.main(ActivityThread.java:4745)
║ at java.lang.reflect.Method.invokeNative(Native Method)
║ at java.lang.reflect.Method.invoke(Method.java:511)
║ at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
║ at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
║ at dalvik.system.NativeStart.main(Native Method)
║ Caused by: java.lang.NoClassDefFoundError: kotlin.jvm.internal.Intrinsics
║ at com.my_company.app.notification.NotificationType.<init>(NotificationType.kt)
║ at com.my_company.app.notification.NotificationType.<clinit>(NotificationType.kt:10)
║ ... 15 more
╚════════════════════════════════════════════════════════════════════════════════════════
这是一个扩展函数,允许我将NotificationType枚举传递给IntentFilter。
val intentFilter = IntentFilter(NotificationType.INVITE_RECEIVED)
我不知道会导致此问题的原因,因为我在没有此问题的其他应用中使用enum class NotificationType(private val str: String) {
// Orders
ORDER_HOST_PAID("ORDER_HOST_PAID"),
...
}
。这可能是一个问题吗?
我正在使用Kotlin
答案 0 :(得分:0)
这是因为虽然我有multiDexEnabled true
,但我没有延长MultiDexApplication
。只有在您支持API 20或更低版本时才需要这样做。
将库添加到依赖项中。
android {
defaultConfig {
...
minSdkVersion 15
targetSdkVersion 26
multiDexEnabled true
}
...
}
dependencies {
compile 'com.android.support:multidex:1.0.1'
}
并扩展MultiDexApplication
:
public class MyApplication extends MultiDexApplication
答案:https://stackoverflow.com/a/39831657/3106174
我遇到了同样的错误,我用MultiDex解决了它,如上所述 这个链接:https://developer.android.com/studio/build/multidex.html