使用Google Mobile Ads SDK时出现LiteSdkInfo类找不到异常求助
Google Mobile Ads SDK初始化抛出ClassNotFoundException异常排查
异常信息
E/Ads: Failed to retrieve lite SDK info. java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.ads.internal.client.LiteSdkInfo" on path: DexPathList[[zip file "/data/app/~~AkgGqulaWLZ1A0aJbj6lcg==/ca.used-33LOn7ZdeyTUBp3TFol1sw==/base.apk"],nativeLibraryDirectories=[/data/app/~~AkgGqulaWLZ1A0aJbj6lcg==/ca.used-33LOn7ZdeyTUBp3TFol1sw==/lib/arm64, /data/app/~~AkgGqulaWLZ1A0aJbj6lcg==/ca.used-33LOn7ZdeyTUBp3TFol1sw==/base.apk!/lib/arm64-v8a, /system/lib64, /system/system_ext/lib64, /product/lib64]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:207) at java.lang.ClassLoader.loadClass(ClassLoader.java:379) at java.lang.ClassLoader.loadClass(ClassLoader.java:312) at com.google.android.gms.ads.nonagon.util.q.e(:com.google.android.gms.policy_ads_fdr_dynamite@233702201@233702200057.563238123.563238123:8) at com.google.android.gms.ads.nonagon.util.q.c(:com.google.android.gms.policy_ads_fdr_dynamite@233702201@233702200057.563238123.563238123:40) at com.google.android.gms.ads.nonagon.a.s(:com.google.android.gms.policy_ads_fdr_dynamite@233702201@233702200057.563238123.563238123:15) at com.google.android.gms.ads.nonagon.a.b(:com.google.android.gms.policy_ads_fdr_dynamite@233702201@233702200057.563238123.563238123:5) at com.google.android.gms.ads.ChimeraMobileAdsSettingManagerCreatorImpl.getMobileAdsSettingManager(:com.google.android.gms.policy_ads_fdr_dynamite@233702201@233702200057.563238123.563238123:52) at com.google.android.gms.ads.internal.client.bx.bO(:com.google.android.gms.policy_ads_fdr_dynamite@233702201@233702200057.563238123.563238123:40) at m.aiu.onTransact(:com.google.android.gms.policy_ads_fdr_dynamite@233702201@233702200057.563238123.563238123:21) at android.os.Binder.transact(Binder.java:1052) at msh.ge(:com.google.android.gms@234414031@23.44.14 (150400-580326705):8) at com.google.android.gms.ads.internal.client.ay.getMobileAdsSettingManager(:com.google.android.gms@234414031@23.44.14 (150400-580326705):12) at com.google.android.gms.ads.MobileAdsSettingManagerCreatorImpl.getMobileAdsSettingManager(:com.google.android.gms@234414031@23.44.14 (150400-580326705):42) at com.google.android.gms.ads.internal.client.az.fe(:com.google.android.gms@234414031@23.44.14 (150400-580326705):40) at msi.onTransact(:com.google.android.gms@234414031@23.44.14 (150400-580326705):122) at android.os.Binder.transact(Binder.java:1052) at com.google.android.gms.internal.ads.zzhs.zzbq(com.google.android.gms:play-services-ads-base@@20.3.0:2) at com.google.android.gms.internal.ads.zzbgj.zze(com.google.android.gms:play-services-ads-lite@@20.3.0:4) at com.google.android.gms.internal.ads.zzbia.zza(com.google.android.gms:play-services-ads-lite@@20.3.0:3) at com.google.android.gms.internal.ads.zzben.zzb(com.google.android.gms:play-services-ads-lite@@20.3.0:13) at com.google.android.gms.internal.ads.zzbeu.zzf(com.google.android.gms:play-services-ads-lite@@20.3.0:1) at com.google.android.gms.internal.ads.zzbeu.zzd(com.google.android.gms:play-services-ads-lite@@20.3.0:11) at com.google.android.gms.internal.ads.zzbhv.zzw(com.google.android.gms:play-services-ads-lite@@20.3.0:3) at com.google.android.gms.internal.ads.zzbhv.zzb(com.google.android.gms:play-services-ads-lite@@20.3.0:8) at com.google.android.gms.ads.MobileAds.initialize(com.google.android.gms:play-services-ads-lite@@20.3.0:3) at ca.used.main.MainActivity.onCreate(MainActivity.java:156) at android.app.Activity.performCreate(Activity.java:8104) at android.app.Activity.performCreate(Activity.java:8088) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3479) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3681) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) E/Ads: at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2130) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:250) at android.app.ActivityThread.main(ActivityThread.java:7803) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:958)
问题说明
调用MobileAds.initialize()时触发上述异常,涉及的com.google.android.gms.ads.internal.client.LiteSdkInfo类并非我代码库中的类,推测属于Google Mobile Ads SDK内部依赖。
相关配置
app模块build.gradle
implementation 'com.google.android.gms:play-services-ads:20.3.0'
项目根目录build.gradle
buildscript { repositories { google() mavenCentral() } } allprojects { repositories { google() mavenCentral() } }
AndroidManifest.xml
<uses-permission android:name="com.google.android.gms.permission.AD_ID" /> <meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="THE_VALUE" />
MainActivity.java关键代码
import com.google.android.gms.ads.MobileAds; import com.google.android.gms.ads.initialization.InitializationStatus; import com.google.android.gms.ads.initialization.OnInitializationCompleteListener; MobileAds.initialize(this, new OnInitializationCompleteListener() { @Override public void onInitializationComplete(InitializationStatus initializationStatus) { } });
异常原因分析
- SDK版本兼容问题:使用的play-services-ads 20.3.0版本较旧,可能与设备上的Google Play服务版本不匹配,导致内部依赖类加载失败。
- Dex分包或代码混淆问题:开启代码混淆后,ProGuard/R8可能误移除了SDK内部需要的
LiteSdkInfo类;或者Dex分包配置不当,导致该类未被打包进主Dex。 - Gradle缓存冲突:Gradle缓存中存在旧版本的SDK依赖,导致编译时未正确引入所需类。
- 依赖冲突:项目中其他依赖可能引入了不同版本的Google Play服务组件,导致版本冲突。
解决方法
升级SDK版本:将play-services-ads版本更新至最新稳定版,例如:
implementation 'com.google.android.gms:play-services-ads:22.6.0'新版本通常修复了旧版本的兼容性问题,且与最新Google Play服务适配更好。
清理项目缓存与重建:
- 执行Android Studio的
Build > Clean Project - 执行
Build > Rebuild Project - 可选:删除项目根目录下的
.gradle文件夹,以及模块的build文件夹,重新同步Gradle。
- 执行Android Studio的
调整代码混淆规则:如果开启了代码混淆,在
proguard-rules.pro中添加以下规则,避免误删SDK内部类:-keep class com.google.android.gms.ads.internal.client.LiteSdkInfo { *; } -keep class com.google.android.gms.ads.** { *; }检查设备Google Play服务版本:确保测试设备上的Google Play服务已更新至最新版,可通过Google Play商店检查更新。
排查依赖冲突:运行
./gradlew app:dependencies查看项目依赖树,检查是否有其他依赖引入了旧版本的play-services-ads或相关组件,若有则通过exclude排除冲突:implementation('xxx:xxx:1.0') { exclude group: 'com.google.android.gms', module: 'play-services-ads' }
内容的提问来源于stack exchange,提问作者Mark
相关产品推荐
相关产品推荐

