升级play-services-ads:20.1.0后setNativeAd类型不匹配如何解决
问题根因
你当前使用的原生广告模板(NativeTemplateView)为旧版本,仅适配com.google.android.gms:play-services-ads 20.0.0以下版本的UnifiedNativeAd类型。20.0.0及以上版本的AdMob SDK已经将UnifiedNativeAd、AppOpenAd等多种广告格式统一归为新的NativeAd类,新旧类型不匹配导致参数传入报错。
解决步骤
方案1(推荐,适配官方最新规范):升级原生广告模板依赖
打开项目Module级的build.gradle文件,找到原生广告模板的依赖项,将版本升级到2.0.0及以上:implementation 'com.google.android.ads:native-templates:2.0.0'同步Gradle后即可解决类型不匹配问题,2.0.0及以上版本的模板
setNativeAd()方法已适配新的NativeAd参数。注意:同步完成后如果仍有报错,请检查代码中
NativeAd的导包路径是否为com.google.android.gms.ads.nativead.NativeAd,避免引用到已废弃的旧包类。方案2(临时兼容,不建议长期使用):回退AdMob SDK版本
如果暂时不希望修改模板代码,可以将play-services-ads的版本回退到最后一个支持UnifiedNativeAd的19.8.0版本:implementation 'com.google.android.gms:play-services-ads:19.8.0'
内容的提问来源于stack exchange,提问作者kunal
相关产品推荐
相关产品推荐

