Unity Admob v6.1.0 new创建MonoBehaviour警告致Play Store上架崩溃求解
Unity Admob v6.1.0 警告与上架崩溃修复方案
问题原因
Admob v6.x版本重构了代码目录结构,旧版本针对BannerClient的修复方案不适配新版本,且你的报错本质是插屏广告的InterstitialClient脚本里仍存在用new关键字实例化继承自MonoBehaviour的ButtonBehaviour类的错误逻辑,编辑器环境下不会触发强校验,但打包到安卓环境后会直接触发崩溃。
解决步骤
- 找到对应代码文件:Admob v6.1.0版本的对应脚本在
Packages/Google Mobile Ads/Runtime/Platforms/Unity/InterstitialClient.cs,如果是手动导入源码到Assets目录的话,路径为Assets/GoogleMobileAds/Runtime/Platforms/Unity/InterstitialClient.cs - 如果通过Package Manager安装的Admob包锁定无法修改,可以在Package Manager里将Admob包改为嵌入(Embed)模式,即可直接修改包内源码
- 定位到脚本内的
CreateButtonBehavior方法,将原有的buttonBehaviour = new ButtonBehaviour();代码替换为如下内容:
GameObject adButtonObj = new GameObject(); buttonBehaviour = adButtonObj.AddComponent<ButtonBehaviour>();
- 保存修改后在编辑器运行项目,确认原本的MonoBehaviour实例化警告消失,再打包本地apk测试广告展示逻辑正常后,即可重新上传Play Store。
注意事项
不需要降级Admob版本,也不需要修改BannerClient相关代码,你的报错堆栈明确指向插屏广告的InterstitialClient逻辑,仅修改该文件即可。
内容的提问来源于stack exchange,提问作者Serkan Tarakcı
相关产品推荐
相关产品推荐

