【发布时间】:2019-06-17 15:14:04
【问题描述】:
我试图通过将 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:
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”,那也没关系。仅当我尝试像上面描述的那样启动我的发布变体时才会发生这种情况。有人有想法吗?
【问题讨论】:
标签: android minify android-proguard android-multidex