簡體   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