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

Flutter集成AdMob测试广告遇code3错误及intent查找失败求助

解决Flutter AdMob测试广告错误码3及Intent查找失败问题

针对你遇到的错误码3(No ad config)和Dynamic lookup for intent failed for action: com.google.android.gms.ads.service.START日志,按以下步骤排查修复:

1. 替换为官方测试广告ID

测试阶段必须使用Google提供的官方测试广告单元ID,自定义真实ID会因未完成审核返回无广告配置错误:

  • Banner测试ID:ca-app-pub-3940256099942544/6300978111
  • 配套测试APP ID(用于AndroidManifest配置):ca-app-pub-3940256099942544~3347511713

修改home_page.dart中的广告单元ID:

_anchoredAdaptiveAd = BannerAd(
  adUnitId: 'ca-app-pub-3940256099942544/6300978111', // 替换为官方测试ID
  // 其他参数保留
);

2. 修复Google Play服务依赖冲突

日志中的Intent查找失败,多因Play服务版本不兼容或依赖混乱导致:

  • 在android/build.gradle中使用Play services BOM统一管理版本,避免版本差异:
    dependencies {
        // 替换单独的play-services-ads依赖
        implementation platform('com.google.android.gms:play-services-bom:21.5.0')
        implementation 'com.google.android.gms:play-services-ads'
        // 其余原有依赖保留
    }
    
  • 升级google_mobile_ads插件到最新稳定版(如3.1.0),确保与Play服务版本兼容。

3. 补充AndroidManifest必要配置

在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"/> <!-- 测试APP ID -->

4. 调整广告加载时机

当前didChangeDependencies会在MobileAds初始化完成前发起广告请求,可能导致请求无效。修改逻辑确保初始化完成后再加载:

// main.dart中添加初始化完成标记
bool _adsInitialized = false;

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(); 
  await MobileAds.instance.initialize().then(
    (InitializationStatus status) {
      MobileAds.instance.updateRequestConfiguration(
        RequestConfiguration(
          tagForChildDirectedTreatment: TagForChildDirectedTreatment.unspecified,
          testDeviceIds: <String>[myDevice],
        ),
      );
      debugPrint('Initialization done: ${status.adapterStatuses}');
      _adsInitialized = true; // 标记初始化完成
    },
  );
  runApp(const MyApp());
}

// home_page.dart的_loadAd方法中增加判断
Future<void> _loadAd() async {
  if (!_adsInitialized) {
    await Future.delayed(const Duration(seconds: 2)); // 等待初始化完成
    if (!_adsInitialized) return;
  }
  // 原有加载逻辑保留
}

5. 检查设备环境

  • 确保测试设备/模拟器安装最新版Google Play服务,模拟器需选择带Google Play的系统镜像(如Pixel系列API 33镜像)。
  • 设备需正常联网,无AdBlock类软件拦截广告请求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 12:15:49