安装应用程序后,发布版本看不到应用程序 class
Release version doesn't see Application class after installing the app
在调试版应用程序中工作正常。但是当我生成 sign apk 并安装它时,在打开应用程序后 - 它会由于 logcat 错误而立即崩溃:
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.mypackage.AppClass" on path: DexPathList[[zip file "/data/app/com.mypackage-1/base.apk"],nativeLibraryDirectories=[/vendor/lib64, /system/lib64]].
我使用 AppClass 来扩展 MultiDexApplication,我也在那里获得了一些功能。我已在清单中正确声明了此 class。
最复杂的是它在调试版本中工作,但只有在发布版本中才会出现此问题。
如果有人能帮我解决这个问题,我将不胜感激。
此致
检查这个选项:
选项 1:降低您的 gradle 版本
选项 2:minifyEnabled false
选项 3:使用稳定的支持库和构建工具。
选项 4:使 caches/restart 无效,文件->使 caches/restart
无效
选项 5:如果您使用的是私有平台库,请确保您的 APK 包含非 NDK 库。
最后,我找到了一个解决方案,帮助我解决了这个问题。我不得不在 gradle:
中添加这部分代码
dexOptions {
preDexLibraries = false
}
以及您应用程序的一般部分 build.gradle
afterEvaluate {
tasks.matching {
it.name.startsWith('dex')
}.each { dx ->
if (dx.additionalParameters == null) {
dx.additionalParameters = ['--multi-dex']
} else {
dx.additionalParameters += '--multi-dex'
}
}
}
对于可能遇到类似问题的其他人,我指的是 post 我在其中获得了解决方案:
在调试版应用程序中工作正常。但是当我生成 sign apk 并安装它时,在打开应用程序后 - 它会由于 logcat 错误而立即崩溃:
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.mypackage.AppClass" on path: DexPathList[[zip file "/data/app/com.mypackage-1/base.apk"],nativeLibraryDirectories=[/vendor/lib64, /system/lib64]].
我使用 AppClass 来扩展 MultiDexApplication,我也在那里获得了一些功能。我已在清单中正确声明了此 class。
最复杂的是它在调试版本中工作,但只有在发布版本中才会出现此问题。
如果有人能帮我解决这个问题,我将不胜感激。
此致
检查这个选项:
选项 1:降低您的 gradle 版本
选项 2:minifyEnabled false
选项 3:使用稳定的支持库和构建工具。
选项 4:使 caches/restart 无效,文件->使 caches/restart
无效选项 5:如果您使用的是私有平台库,请确保您的 APK 包含非 NDK 库。
最后,我找到了一个解决方案,帮助我解决了这个问题。我不得不在 gradle:
中添加这部分代码 dexOptions {
preDexLibraries = false
}
以及您应用程序的一般部分 build.gradle
afterEvaluate {
tasks.matching {
it.name.startsWith('dex')
}.each { dx ->
if (dx.additionalParameters == null) {
dx.additionalParameters = ['--multi-dex']
} else {
dx.additionalParameters += '--multi-dex'
}
}
}
对于可能遇到类似问题的其他人,我指的是 post 我在其中获得了解决方案: