[英]Android app crashes when proguard enabled with release apk: NoClassDefFoundError: Failed resolution of: Lorg/koin/core/context/GlobalContextKt;
I am facing with problem (app crashes at start) with release apk, when enabling proguard.启用 proguard 时,我在发布 apk 时遇到问题(应用程序在开始时崩溃)。
Here is stack trace:这是堆栈跟踪:
E/AndroidRuntime: FATAL EXCEPTION: main Process: com.xxxx.yyyy, PID: 24018 java.lang.NoClassDefFoundError: Failed resolution of: Lorg/koin/core/context/GlobalContextKt; 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
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) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1055)
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)
Here is my Application class, where I start koin:这是我的申请 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 version: 2.0.1 What is interesting that only crashes in release signed apk when minifyEnabled = true. Koin 版本:2.0.1 有趣的是,只有在 minifyEnabled = true 时才会在发布签名的 apk 中崩溃。 But if debug build with minifyEnabled = true, it does not crashes.
但是如果使用 minifyEnabled = true 调试构建,它不会崩溃。 I am aware I didn't post more sample code but it is very difficult to investigate what causes crash from logs for release apk, Already read some issue reports on GitHub. but no help for me.
我知道我没有发布更多示例代码,但很难从发布 apk 的日志中调查导致崩溃的原因,已经阅读了 GitHub 上的一些问题报告。但对我没有帮助。 Thanks for any advice!
感谢您的任何建议!
I have found a problem.我发现了一个问题。 I totally forgot that last week I changed in gradle import for firebase-crashlytics library(using new way).
我完全忘记了上周我更改了 gradle 导入 firebase-crashlytics 库(使用新方法)。 Also removed keep class crashlytics in proguard-roles file.
还删除了将 class crashlytics 保留在 proguard-roles 文件中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.