Android 自sdk';s更新
我的wapp正在编译并以api 27为目标,使用的是早期版本的firebase ads。现在,在更新应用程序并编译并以api 28为目标,使用每个sdk的最新版本后,包括firebase ads(与admob相同),也使用R8而不是proguard进行编译,我在google play控制台崩溃部分遇到了很多类似的例外情况:Android 自sdk';s更新,android,admob,classnotfoundexception,noclassdeffounderror,android-9.0-pie,Android,Admob,Classnotfoundexception,Noclassdeffounderror,Android 9.0 Pie,我的wapp正在编译并以api 27为目标,使用的是早期版本的firebase ads。现在,在更新应用程序并编译并以api 28为目标,使用每个sdk的最新版本后,包括firebase ads(与admob相同),也使用R8而不是proguard进行编译,我在google play控制台崩溃部分遇到了很多类似的例外情况: java.lang.NoClassDefFoundError: at gk.b (gk.java:3) at gl.a (gl.java:3) at gn.a
java.lang.NoClassDefFoundError:
at gk.b (gk.java:3)
at gl.a (gl.java:3)
at gn.a (gn.java:18)
at com.google.android.gms.ads.internal.util.ar.a (ar.java:5)
at fo.a (fo.java:19)
at fo.run (fo.java:8)
Caused by: java.lang.ClassNotFoundException:
at dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:171)
at java.lang.ClassLoader.loadClass (ClassLoader.java:379)
at ab.loadClass (ab.java:4)
at java.lang.ClassLoader.loadClass (ClassLoader.java:312)
at gk.b (gk.java:3)
at gl.a (gl.java:3)
at gn.a (gn.java:18)
at com.google.android.gms.ads.internal.util.ar.a (ar.java:5)
at fo.a (fo.java:19)
at fo.run (fo.java:8)
我不知道为什么会混淆,因为我上传了映射文件,可能是因为较新的android studio版本使用R8而不是proguard
一些用户发表了不好的评论,因为他们看到了应用程序更新后的崩溃。我的任何设备都无法使应用程序崩溃
据报道,小米米8和OnePlus 5T设备发生了碰撞,但肯定会更多
问题是什么?一种解决方案是在build.gardle配置中禁用
minifyEnabled
(代码收缩、模糊和优化)和shrinkResources
字段
buildTypes {
release {
minifyEnabled false
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
我认为这是由于minifyEnabled代码收缩(重命名类名称)造成的
由于删除未使用的资源需要启用未使用的代码收缩,因此也必须禁用收缩资源