已发布Flutter应用中AdMob广告无法显示问题求助
问题分析与修复方案
从你提供的日志来看,广告无法加载的核心问题出在SDK版本兼容和Firebase集成异常,不用继续等待,按以下步骤排查修复:
关键错误点拆解
- Firebase SDK缺失或版本过旧:日志明确提示AdMob与Firebase集成需要最新Firebase SDK,但当前环境要么未配置要么版本不达标,这会直接影响广告请求的正常处理。
- Mobile Ads SDK版本过期:当前使用的
afma-sdk-a-v260480999.250930000.1版本已被标记为过时,旧版本存在兼容性问题,导致广告请求返回HTTP 400错误。 - 广告加载错误码3:对应AdMob的服务器端错误,本质是SDK配置或版本问题引发的请求失败,并非无广告填充。
具体修复步骤
更新Firebase依赖
- 在项目
pubspec.yaml中,确保firebase_core及其他Firebase相关依赖为最新版本,执行flutter pub upgrade完成更新。 - 同步Android端
build.gradle,保证Firebase SDK版本与Mobile Ads SDK版本匹配。
- 在项目
升级Google Mobile Ads SDK
- 检查
pubspec.yaml中的google_mobile_ads依赖,替换为最新稳定版,执行flutter pub get生效。 - 确认Android端
build.gradle里的com.google.android.gms:play-services-ads版本为最新,避免版本冲突。
- 检查
完善Firebase集成配置
- 确保
google-services.json已正确放置在Android项目的app目录,且文件中的包名与Google Play发布的应用包名完全一致。 - 调整初始化顺序:应用启动时先调用
Firebase.initializeApp(),再初始化Mobile Ads SDK。
- 确保
验证AdMob应用ID配置
- 检查
AndroidManifest.xml中的com.google.android.gms.ads.APPLICATION_ID,确保与AdMob后台的应用ID完全匹配。
- 检查
先验证测试广告
- 按照日志提示添加测试设备ID,排除代码逻辑问题:
RequestConfiguration configuration = RequestConfiguration( testDeviceIds: ["7B09E9E505F21D8552AD47ABBF4E2398"] ); MobileAds.instance.updateRequestConfiguration(configuration); - 确认测试广告能正常加载后,再切换回真实广告请求。
- 按照日志提示添加测试设备ID,排除代码逻辑问题:
额外提醒
- app-ads.txt生效通常需要1-2天,但你的问题根源是SDK集成,无需等待该文件生效。
- 确保应用发布包的签名证书与AdMob后台配置一致,否则广告请求会被拦截。
内容的提问来源于stack exchange,提问作者plewand




