崩溃发生在 Google Play 服务的内部类中。所有崩溃都在后台发生。设备状态 - 100% 在后台。崩溃是从最近 5 天开始的。 所有谷歌播放服务库也是最新的。 下面附加堆栈跟踪。
堆栈跟踪:
Fatal Exception: java.lang.NoClassDefFoundError: Failed resolution of: Leatg;
at anqf.d(:com.google.android.gms@[email protected] (100300-668017056):5)
at ajso.<clinit>(:com.google.android.gms@[email protected] (100300-668017056):9)
at com.google.android.gms.chimera.container.DynamiteLoaderImpl.<init>(:com.google.android.gms@[email protected] (100300-668017056):49)
at java.lang.Class.newInstance(Class.java)
at com.google.android.gms.dynamite.DynamiteModule.zzg(com.google.android.gms:play-services-basement@@18.1.0:5)
at com.google.android.gms.dynamite.DynamiteModule.zza(com.google.android.gms:play-services-basement@@18.1.0:28)
at com.google.android.gms.dynamite.zze.zzb(com.google.android.gms:play-services-basement@@18.1.0)
at com.google.android.gms.dynamite.zzi.selectModule(com.google.android.gms:play-services-basement@@18.1.0:2)
at com.google.android.gms.dynamite.DynamiteModule.load(com.google.android.gms:play-services-basement@@18.1.0:5)
at com.google.android.gms.internal.measurement.zzef.zzf(zzef.java:2)
at com.google.android.gms.internal.measurement.zzcx.zza(com.google.android.gms:play-services-measurement-sdk-api@@21.2.1:3)
at com.google.android.gms.internal.measurement.zzdu.run(com.google.android.gms:play-services-measurement-sdk-api@@21.2.1:2)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:919)
我希望通过更新谷歌播放服务库找到一些解决方案。但这并没有帮助。
以下是可能的原因和解决方案的细分:
1。播放服务版本不匹配:
您的应用中集成的 Google Play 服务版本可能与设备安装的版本不兼容。
解决方案:确保 build.gradle 文件中的 Google Play Services 版本是最新的。
例如:
implementation 'com.google.android.gms:play-services-basement:18.1.0'
implementation 'com.google.android.gms:play-services-measurement-sdk-api:21.2.1'
您可能需要将它们更新到最新的稳定版本。
- Google Play 服务安装损坏:
设备上的 Google Play 服务可能已损坏或部分安装。
解决方案:卸载设备上的 Google Play 服务更新,或指示用户从 Play 商店更新/重新安装 Google Play 服务。
- ProGuard 或 R8 配置:
如果您使用 ProGuard 或 R8 进行代码压缩和混淆,它可能会无意中删除或混淆必要的类。
解决方案:将规则添加到 ProGuard 配置文件中,以防止删除必要的类。
例如:
-keep class com.google.android.gms.** { *; }
-keep class eetg { *; }
确保与 Google Play 服务相关的类和您的 DynamiteModule 依赖项没有被混淆。
4。多重索引问题:
如果您的应用程序使用 multidex,则辅助 dex 文件中的类加载可能会出现问题。
解决方案:如果您使用的是 multidex,请确保在 build.gradle 中正确配置它:
android {
defaultConfig {
multiDexEnabled true
}
}
此外,请考虑在您的 Application 类中添加 multidex 初始化。
5。炸药模块加载问题:
错误发生在 DynamiteModule 类中,该类动态加载 Google Play 服务中的模块。它可能表明特定模块不可用或未正确加载。
解决方案:尝试检查设备是否支持 Dynamite 模块。另外,在多个设备或模拟器上进行测试,看看是否是特定于设备的问题。
6。清除应用程序缓存和数据:
如果设备上出现此问题,则应用程序的缓存数据可能会导致失败。
解决方案:清除应用程序的缓存和数据,或重新安装应用程序。
7。库依赖冲突:
项目中不同库版本之间的冲突可能会导致此问题。
解决方案:使用 ./gradlew app:dependencies 命令检查库之间是否存在版本冲突。您可以在 build.gradle 中使用依赖项解析策略来强制执行特定版本:
configurations.all {
resolutionStrategy {
force 'com.google.android.gms:play-services-basement:18.1.0'
}
}
我希望这些信息可以帮助您解决错误。