You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中AdMob测试设备ID在Logcat中找不到,如何获取?

解决Flutter AdMob无法获取测试设备ID的问题

一、先明确:你的模拟器已被识别为测试设备

从你提供的日志I/Ads (29143): This request is sent from a test device.可以看出,Google Ads已自动将模拟器标记为测试设备——此时即使不手动指定testDeviceIds,使用官方测试广告单元ID(比如你代码里的ca-app-pub-3940256099942544/6300978111)也会返回测试广告,不会触发真实计费。

二、找到Logcat中的测试设备ID

如果一定要获取具体ID,按以下步骤操作:

  • 打开Android Studio的Logcat面板,在搜索框中输入**test device,或直接过滤标签Ads**,避免全局搜索被无关日志淹没。
  • 运行应用并触发广告加载(比如调用你的_loadBannerAd方法),此时Logcat会输出类似日志:
    I/Ads: Use AdRequest.Builder.addTestDevice("ABCDE12345...") to get test ads on this device.
    
    其中的字符串就是你的测试设备ID。

三、修复TEST_EMULATOR配置不生效的问题

你之前的TEST_EMULATOR配置需要注意初始化顺序,正确写法如下:

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  // 先更新请求配置
  await MobileAds.instance.updateRequestConfiguration(
    RequestConfiguration(testDeviceIds: ['TEST_EMULATOR']),
  );
  // 再初始化MobileAds
  await MobileAds.instance.initialize();
  runApp(const MyApp());
}

确保配置更新完成后再加载广告,避免时序问题导致配置未生效。

四、手动获取模拟器测试设备ID

如果Logcat始终无法输出,可通过以下方式手动获取:

  • 方法1:在Android模拟器中,进入设置 > 关于手机 > 状态信息 > Android ID,复制该字符串作为测试设备ID。
  • 方法2:使用adb命令获取:
    adb shell settings get secure android_id
    
    执行后返回的字符串即为测试设备ID,将其添加到testDeviceIds数组即可。

五、排查广告加载的其他潜在问题

从代码看你的广告单元ID是官方测试ID,若广告仍未加载,可检查:

  • 确保模拟器的Google Play服务为最新版本,旧版本可能存在Ads服务兼容性问题。
  • 检查AndroidManifest.xml是否添加了AdMob所需权限和元数据:
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    
    <application>
      <meta-data
          android:name="com.google.android.gms.ads.APPLICATION_ID"
          android:value="ca-app-pub-3940256099942544~3347511713"/> <!-- 官方测试APP ID -->
    </application>
    

内容的提问来源于stack exchange,提问作者Johan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 04:36:19