AdMob测试横幅广告在模拟器及小米设备正常显示,Galaxy S10不显示的问题排查
Galaxy S10(Android 11)Flutter AdMob横幅广告不显示的解决办法
问题根源
这种特定真机上的广告显示差异,大多是因为测试设备未正确配置,或者目标设备的系统设置、Google服务版本限制了AdMob广告加载。
具体解决步骤
1. 配置测试设备ID(关键)
根据你拿到的设备ID提示,在Flutter项目里完成测试设备配置,避免AdMob因非测试设备限制广告展示:
import 'package:google_mobile_ads/google_mobile_ads.dart'; void initAdMob() async { await MobileAds.instance.initialize(); final config = RequestConfiguration( testDeviceIds: ['0E9819CC3AEA7F45DCB97C80DCE78CF6'], ); MobileAds.instance.updateRequestConfiguration(config); }
记得在main()函数里先调用initAdMob(),确保启动时就完成配置。
2. 检查Galaxy S10的系统设置
- 关闭电池优化:去「设置 > 电池和设备维护 > 电池 > 后台使用限制」,把你的应用设为「不限制」,防止AdMob相关进程被系统后台回收。
- 确认网络权限:检查
android/app/src/main/AndroidManifest.xml里是否有互联网权限,Flutter默认会加,但以防万一:
<uses-permission android:name="android.permission.INTERNET"/>
- 更新Google Play服务:Galaxy S10的Google服务版本可能偏旧,打开Google Play商店搜索「Google Play服务」,更新到最新版再测试。
3. 排查区域与账号限制
- 部分地区AdMob测试广告投放有限制,临时把设备语言/区域改成英文(美国)试试。
- 登录AdMob后台确认账号状态正常,没有被限流或警告。
真机调试技巧
- 用Logcat看日志:Wi-Fi连接设备后,在Android Studio的Logcat里过滤
Ads关键词,能看到广告加载的详细错误信息——比如错误码3是无填充,错误码0是请求成功但显示失败,根据错误码就能精准定位问题。 - 开启AdMob调试日志:在初始化代码里加:
MobileAds.instance.setAppMuted(false); MobileAds.instance.setAppVolume(1.0);
同时在AndroidManifest.xml里加:
<meta-data android:name="com.google.android.gms.ads.DEBUG_LOG_ENABLED" android:value="true"/>
这样能看到更完整的广告请求流程日志,方便排查。
内容的提问来源于stack exchange,提问作者Badr Erraji
相关产品推荐
相关产品推荐

