繁体   English   中英

Android 当 proguard 启用发布 apk 时应用程序崩溃:NoClassDefFoundError:解析失败:Lorg/koin/core/context/GlobalContextKt;

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM