You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AdMob 15.0.0版本恢复RewardedVideoAd时崩溃问题求助

针对AdMob 15.0.0 RewardedVideoAd返回Activity崩溃的排查方案

我之前也踩过AdMob版本兼容的坑,针对你遇到的这个崩溃问题,给你几个实用的排查方向:

  • 严格对齐所有AdMob相关依赖版本
    一定要保证com.google.android.gms:play-services-ads和所有 mediation 适配器依赖都是15.0.0版本。混合不同版本的SDK是触发这类ClassCastException的常见原因——旧版本的适配器类和新版本核心SDK的内部类结构不匹配,就会出现转类型失败的情况。

  • 不要复用跨生命周期的RewardedVideoAd实例
    从另一个Activity返回时,别直接尝试恢复之前的广告对象,而是在当前Activity的onResume()里重新初始化广告实例,避免生命周期不匹配导致的异常。示例代码:

    @Override
    protected void onResume() {
        super.onResume();
        // 重新创建RewardedVideoAd实例
        mRewardedVideoAd = MobileAds.getRewardedVideoAdInstance(this);
        mRewardedVideoAd.setRewardedVideoAdListener(this);
        loadRewardedVideoAd(); // 重新触发广告加载
    }
    
  • 清理Manifest中过时的 mediation 配置
    检查你的AndroidManifest.xml,如果有旧版本的AdMob mediation相关<meta-data>标签或适配器声明,赶紧删掉,这些残留配置很可能和15.0.0版本的SDK冲突。

  • 尝试调整SDK版本
    15.0.0属于比较早期的版本,本身可能存在生命周期管理的bug。可以尝试升级到稍新的稳定版本(比如17.0.0),或者暂时降级到14.7.0版本,看看崩溃是否消失。

  • 检查混淆规则是否正确
    如果开启了代码混淆,确保AdMob相关类没有被错误混淆。在proguard-rules.pro里添加以下规则:

    -keep class com.google.android.gms.ads.** { *; }
    -keep class com.google.ads.mediation.** { *; }
    

补充:你遇到的这个异常本质是SDK内部类加载不匹配,大概率是依赖版本不一致或者对象跨生命周期复用导致的,优先排查这两个方向,应该能解决问题。

内容的提问来源于stack exchange,提问作者Aracem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:39:12