Flutter应用中AdMob Banner不显示问题求助
以下是针对该问题的具体排查步骤,按优先级逐一验证:
强制使用测试广告ID
开发阶段必须使用AdMob官方提供的测试ID,正式ID未通过审核或填充率不足时会出现无内容的深色占位。- Android测试Banner ID:
ca-app-pub-3940256099942544/6300978111 - iOS测试Banner ID:
ca-app-pub-3940256099942544/2934735716
- Android测试Banner ID:
核对应用级ID配置
- Android:检查
AndroidManifest.xml中的meta-data标签,确认com.google.android.gms.ads.APPLICATION_ID值与AdMob后台的应用ID完全一致,无拼写错误。 - iOS:检查
Info.plist里的GADApplicationIdentifier键对应的值是否正确。
- Android:检查
检查网络权限与环境
- Android:确保
AndroidManifest.xml添加了必要权限:<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> - 确认设备网络正常,避免使用VPN/代理(部分代理会拦截AdMob请求)。
- Android:确保
添加加载状态回调排查错误
给BannerAd添加listener,捕获具体加载错误信息(控制台无报错不代表无回调错误):BannerAd( adUnitId: BannerAd.testAdUnitId, size: AdSize.banner, request: AdRequest(), listener: BannerAdListener( onAdLoaded: (Ad ad) => print('Banner广告加载成功'), onAdFailedToLoad: (Ad ad, LoadAdError error) { ad.dispose(); print('Banner加载失败: ${error.message},错误码: ${error.code}'); }, ), )常见错误码:3(无广告填充)、0(内部服务错误)、2(请求参数错误)。
更新插件与依赖
确保google_mobile_ads插件为最新稳定版,旧版本可能存在Flutter SDK或AdMob服务兼容性问题。验证测试环境
- 优先使用真实设备测试,部分模拟器(非Google APIs镜像)无法正常加载AdMob服务。
- 更换测试设备/Google账号,排查是否存在设备或账号被限制的情况。
检查布局约束
确保Banner广告的父布局设置了正确的高度约束(比如AdSize.banner.height,即50dp),错误的布局约束可能导致广告视图被压缩,仅显示背景色。
内容的提问来源于stack exchange,提问作者user16371170
相关产品推荐
相关产品推荐

