接入Unity Ads中介后InterstitialAd加载完成时应用崩溃如何解决
问题根因
你遇到的崩溃是Google Mobile Ads(GMA)SDK与Unity Ads中介适配器版本不匹配导致的:
- GMA SDK从20.0版本开始,将
InterstitialAd类的包名从com.google.android.gms.ads调整为com.google.android.gms.ads.interstitial - Unity Ads中介适配器3.7.2.0版本仅适配GMA 20.0+版本,你当前使用的GMA版本为19.5.0,适配器调用旧包名的
InterstitialAd类时找不到对应类,触发NoClassDefFoundError崩溃
规范解决方案
方案一:升级GMA SDK到20.0+(官方推荐长期方案)
- 修改gradle依赖,将GMA SDK升级到20.0及以上的稳定版本,示例配置:
implementation 'com.google.android.gms:play-services-ads:22.6.0' - 保留Unity Ads中介适配器3.7.2.0版本,或升级到适配对应GMA版本的最新稳定适配器
- 同步修改项目中所有插屏广告的调用逻辑,将旧包名的
InterstitialAd相关调用替换为新包名的对应API即可
方案二:固定Unity Ads适配器版本(适用于暂无法升级GMA SDK的场景)
如果你的项目其他依赖限制无法升级GMA 19.5.0版本,可将临时方案正式化:
- 在gradle中强制锁定Unity Ads中介适配器版本为适配GMA 19.x的3.6.0.0,配置如下:
implementation 'com.google.ads.mediation:unity:3.6.0.0' - 后续升级依赖时注意不要随意提升Unity Ads适配器版本,直到准备好升级GMA SDK到20.0+为止
注意事项
- 所有GMA中介平台的适配器版本必须和项目中使用的GMA主SDK版本严格匹配,不要跨适配范围混用版本
- 如果同时接入了多个广告中介平台,需要检查所有适配器的适配GMA版本范围,确保全部匹配主SDK版本,避免出现其他类似类找不到的崩溃
内容的提问来源于stack exchange,提问作者SHAI
相关产品推荐
相关产品推荐

