集成Meta Audience Network到AdMob中介时出现NoSuchMethodError崩溃问题
AdMob中介集成Meta Audience Network时Mediation Test Suite崩溃问题
问题详情
将Meta Audience Network集成到AdMob中介后,直接用AdMob加载广告正常,但通过Mediation Test Suite启动广告时应用崩溃,报错信息如下:
java.lang.NoSuchMethodError: No virtual method addNetworkExtrasBundle(Ljava/lang/Class;Landroid/os/Bundle;)Lcom/google/android/gms/ads/AdRequest$Builder; in class Lcom/google/android/gms/ads/AdRequest$Builder; or its super classes (declaration of 'com.google.android.gms.ads.AdRequest$Builder' appears in /data/app/~~oKlg38Jc4VCuldv5j8yjbw==/in.animall.android-j-38kGYKedQ-_97P08tWkw==/base.apk!classes19.dex) at com.google.android.ads.mediationtestsuite.utils.AdRequestUtil.buildAdRequest(AdRequestUtil.java:64) at com.google.android.ads.mediationtestsuite.utils.AdManager.<init>(AdManager.java:26) at com.google.android.ads.mediationtestsuite.utils.InterstitialAdManager.<init>(InterstitialAdManager.java:19) at com.google.android.ads.mediationtestsuite.dataobjects.AdFormat$2.createAdLoader(AdFormat.java:27) at com.google.android.ads.mediationtestsuite.dataobjects.BatchAdRequestManager.testNextConfig(BatchAdRequestManager.java:49) at com.google.android.ads.mediationtestsuite.dataobjects.BatchAdRequestManager.beginTesting(BatchAdRequestManager.java:39) at com.google.android.ads.mediationtestsuite.activities.ConfigurationItemDetailActivity.loadSelectedAds(ConfigurationItemDetailActivity.java:240) at com.google.android.ads.mediationtestsuite.activities.ConfigurationItemDetailActivity.access$500(ConfigurationItemDetailActivity.java:42) at com.google.android.ads.mediationtestsuite.activities.ConfigurationItemDetailActivity$2.onMenuItemClick(ConfigurationItemDetailActivity.java:86) at androidx.appcompat.widget.Toolbar$1.onMenuItemClick(Toolbar.java:224) at androidx.appcompat.widget.ActionMenuView$MenuBuilderCallback.onMenuItemSelected(ActionMenuView.java:769) at androidx.appcompat.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:833) at androidx.appcompat.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:157) at androidx.appcompat.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:984) at androidx.appcompat.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:974) at androidx.appcompat.widget.ActionMenuView.invokeItem(ActionMenuView.java:620) at androidx.appcompat.view.menu.ActionMenuItemView.onClick(ActionMenuItemView.java:155) at android.view.View.performClick(View.java:7447) at android.view.View.performClickInternal(View.java:7420) at android.view.View.access$3700(View.java:837) at android.view.View$PerformClick.run(View.java:28867) at android.os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:201) at android.os.Looper.loop(Looper.java:288) at android.app.ActivityThread.main(ActivityThread.java:7886) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:568) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1045)
当前使用的依赖版本:
facebook-mediation = "6.18.0.0" playServicesAds = "23.4.0" mediationTestSuite = "3.0.0" play-services-ads = { group = "com.google.android.gms", name = "play-services-ads", version.ref = "playServicesAds" } google-ads-facebook = { group = "com.google.ads.mediation", name = "facebook", version.ref = "facebook-mediation"} mediation-test-suite = { group = "com.google.android.ads", name = "mediation-test-suite", version.ref = "mediationTestSuite" }
问题原因
这个NoSuchMethodError是依赖版本不兼容导致的:Mediation Test Suite 3.0.0要求Google Ads SDK最低版本为24.0.0,但你使用的play-services-ads版本是23.4.0,低于要求版本,导致Test Suite调用了该版本SDK中不存在的addNetworkExtrasBundle方法。
解决方案
1. 升级Google Ads SDK版本
将playServicesAds版本升级到24.0.0或更高,确保与Mediation Test Suite 3.0.0兼容。修改后的依赖配置示例:
facebook-mediation = "6.18.0.0" playServicesAds = "24.0.0" mediationTestSuite = "3.0.0" play-services-ads = { group = "com.google.android.gms", name = "play-services-ads", version.ref = "playServicesAds" } google-ads-facebook = { group = "com.google.ads.mediation", name = "facebook", version.ref = "facebook-mediation"} mediation-test-suite = { group = "com.google.android.ads", name = "mediation-test-suite", version.ref = "mediationTestSuite" }
2. 验证适配器兼容性
当前使用的facebook-mediation:6.18.0.0适配Google Ads SDK 23.3.0及以上版本,升级到24.x版本无需更换适配器版本,可直接兼容。
3. 清理并重构项目
同步项目依赖后,执行清理(Clean Project)和重新构建(Rebuild Project)操作,确保新依赖生效。
备选方案(不推荐)
如果暂时无法升级Google Ads SDK,可以降级Mediation Test Suite到兼容23.4.0的版本(如2.0.0),但推荐优先升级SDK到最新稳定版,以获得更好的兼容性和功能支持。
内容的提问来源于stack exchange,提问作者OhhhThatVarun
相关产品推荐
相关产品推荐

