![](/img/trans.png)
[英]Koin java.lang.NoClassDefFoundError: Failed resolution of: Lorg/koin/dsl/context/ParameterHolderKt
[英]Android app crashes when proguard enabled with release apk: NoClassDefFoundError: Failed resolution of: Lorg/koin/core/context/GlobalContextKt;
启用 proguard 时,我在发布 apk 时遇到问题(应用程序在开始时崩溃)。
这是堆栈跟踪:
E/AndroidRuntime:致命异常:主进程:com.xxxx.yyyy,PID:24018 java.lang.NoClassDefFoundError:解析失败:Lorg/koin/core/context/GlobalContextKt; at com.xxxx.yyyy.MyApp.onCreate(MyApp.kt:31) at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1202) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7349) at android. app.ActivityThread.access$2400(ActivityThread.java:308) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2295) at android.os.Handler.dispatchMessage(Handler.java:110) at android.os. Looper.loop(Looper.java:219) at android.app.ActivityThread.main(ActivityThread.java:8347) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller. run(RuntimeInit.java:513) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1055) Caused by: java.lang.ClassNotFoundException: org.koin.core.context.GlobalContextKt at 8816 8970007088.xxxx.yyyy.MyApp.onCreate(MyApp.kt:31) at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1202) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7349) at android.app .ActivityThread.access$2400(ActivityThread.java:308) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2295) at android.os.Handler.dispatchMessage(Handler.java:110) at android.os.Looper .loop(Looper.java:219) at android.app.ActivityThread.main(ActivityThread.java:8347) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:513) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1055)
这是我的申请 class,我在这里开始 koin:
``` class MyApp : Application() {
companion object {
var language: String? = null
}
@ExperimentalContracts
override fun onCreate() {
super.onCreate()
// Start Koin
startKoin {
androidContext(this@MyApp)
androidLogger(Level.DEBUG)
modules(
listOf(
appModule,
networkModule,
activityModules
)
)
}
}
override fun attachBaseContext(base: Context?) {
if (base != null) {
super.attachBaseContext(LocaleHelper.onAttach(base))
}
else {
super.attachBaseContext(base)
}
}
} ```
Koin 版本:2.0.1 有趣的是,只有在 minifyEnabled = true 时才会在发布签名的 apk 中崩溃。 但是如果使用 minifyEnabled = true 调试构建,它不会崩溃。 我知道我没有发布更多示例代码,但很难从发布 apk 的日志中调查导致崩溃的原因,已经阅读了 GitHub 上的一些问题报告。但对我没有帮助。 感谢您的任何建议!
我发现了一个问题。 我完全忘记了上周我更改了 gradle 导入 firebase-crashlytics 库(使用新方法)。 还删除了将 class crashlytics 保留在 proguard-roles 文件中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.