Flutter 3.03最新版集成AdMob SDK后应用崩溃无法正常使用
Flutter 3.03 版本AdMob接入崩溃问题汇总
这个问题在3.03版本发布初期有大量开发者复现。admob_flutter已经停更超过1年,完全不兼容Flutter 3.x系列版本,直接弃用即可,只需要针对官方维护的google_mobile_ads做配置排查:
必查基础配置(90%的崩溃来自这部分)
- Android端
- 打开
android/app/build.gradle,将minSdkVersion设为21及以上,compileSdkVersion设为33。Flutter 3.03默认初始化的项目minSdk为19,不满足AdMob SDK最低系统要求,会直接触发native层加载崩溃 google_mobile_ads不要使用3.0.0以上版本,该区间版本和Flutter 3.03内置的AndroidX、Kotlin依赖存在版本冲突,直接锁定版本为google_mobile_ads: ^2.4.0- 在
AndroidManifest.xml的<application>标签内添加AdMob应用ID配置,漏加会直接触发初始化崩溃:
<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="替换为自己的AdMob应用ID"/> - 打开
- iOS端
- 打开
ios/Podfile,将全局平台版本设置为platform :ios, '12.0',执行pod deintegrate && pod install --repo-update重新拉取依赖,解决Swift版本不兼容问题 - 在
Info.plist中添加GADApplicationIdentifier字段,值填写对应AdMob应用ID,同时补充NSUserTrackingUsageDescription权限描述,iOS14及以上系统缺失该配置会直接触发崩溃
- 打开
- 打包配置
如果Debug包正常、Release包崩溃,检查是否开启了代码混淆,需要在混淆规则文件中添加AdMob相关类的keep规则,避免核心类被混淆导致广告加载失败崩溃。
剩余异常排查
以上配置全部调整后仍崩溃的,直接过滤控制台的FATAL EXCEPTION日志,绝大多数剩余问题都是GMS服务版本、其他第三方插件和AdMob的依赖冲突导致,手动在build.gradle中锁定冲突依赖的版本即可解决。
内容的提问来源于stack exchange,提问作者Code Pie
相关产品推荐
相关产品推荐

