gpt4 book ai didi

Android 9 崩溃 minifyEnabled 和 multiDexEnabled

转载 作者:行者123 更新时间:2023-11-29 23:20:50 29 4
gpt4 key购买 nike

我试图通过将 minifyEnabled 和 shrinkResources 设置为 true 来缩小我的 apk 大小,但是在启动时我的应用程序崩溃并出现此错误(简短版本):

java.lang.ClassNotFoundException: Didn't find class "...BaseApplication" on path: DexPathList...

我找到了这个错误的许多解决方案,但似乎每个人都只在 android 4.x.x 上崩溃过。我在 android 9 上测试,仍然有这个问题。 Gradle 看起来像这样:

defaultConfig {
minSdkVersion 17
targetSdkVersion 28
versionName "1.0"

multiDexEnabled true
}

和构建类型:

buildTypes {
debug {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}

release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}

而且我还在我的应用程序类中添加了这个:

override fun attachBaseContext(base: Context?) {
MultiDex.install(this)
super.attachBaseContext(base)
}

如果我尝试启动发布版本,我只会遇到此错误。当我使用相同的设置启动调试变体时,一切正常。而且如果我在我的发布变体中添加“debuggable true”也没关系。它只发生在我尝试像上面描述的那样开始我的发布变体时。有人有想法吗?

最佳答案

when you do minifyEnabled true in release it means you need to mention what all files you dont want to obfuscate for eg. BaseApplication by mentioning it in proguard-rules.pro

请在 proguard-rules.pro 中写下一行,它将消除 BaseApplication 类的上述错误

-keep public class * extends android.app.Application

请引用这个link进一步了解proguard。

If you are facing more problem kindly share content from proguard file.

关于Android 9 崩溃 minifyEnabled 和 multiDexEnabled,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54337262/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com