引入google_mobile_ads等广告包后Flutter项目无法在模拟器运行如何解决
Flutter接入广告依赖无报错无法运行解决方案
故障修复步骤
- 移除废弃依赖:
firebase_admob、admob_flutter均已停止维护多年,和新版Flutter、移动端构建环境存在大量兼容冲突,直接删除这两个依赖,仅保留官方维护的google_mobile_ads即可。 - 补全平台配置:
- Android端:除
minSdkVersion ≥ 19外,需在android/app/src/main/AndroidManifest.xml的application标签内添加AdMob应用ID配置:<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ca-app-pub-3940256099942544~3347511713"/>
上述为谷歌官方测试ID,正式上线前替换为自己申请的ID即可。 - iOS端:若运行iOS模拟器报错,需在
ios/Runner/Info.plist中添加GADApplicationIdentifier字段,值同上。
- Android端:除
- 清理构建缓存:依次执行
flutter clean、flutter pub get命令,删除模拟器上已安装的同包名应用后重新运行,避免缓存导致的静默构建失败。 - 调整混淆配置:调试阶段将
android/app/build.gradle中的minifyEnabled、shrinkResources均设为false,未配置广告SDK混淆规则时开启压缩会导致相关类被误删,引发无报错闪退。
广告依赖推荐
- 首选
google_mobile_ads:谷歌官方唯一维护的Flutter Admob SDK,兼容性最佳,支持全类型广告格式,文档完善,社区问题解决方案充足,适合新手接入。 - 国内场景可选
pangle_flutter:字节跳动穿山甲广告官方Flutter插件,国内适配性好,接入流程简单,支持多类型广告。
内容的提问来源于stack exchange,提问作者mehmetduygu
相关产品推荐
相关产品推荐

