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

Android项目迁移Jetpack Compose后AdMob广告加载失败求助

旧Jetpack Compose项目AdMob测试ID加载失败(错误码3)排查方案

错误码对应含义

  • 错误码3(ERROR_CODE_NO_FILL):AdMob服务器接收请求成功,但无可用广告。不过官方测试ID理应始终有填充,因此问题出在旧项目的配置或测试环境。
  • 之前的错误码1(ERROR_CODE_INVALID_REQUEST)已解决,说明自有广告单元ID的配置已修正,但测试ID的逻辑仍存在问题。

逐一排查以下要点

1. 确认测试广告单元ID的正确性

必须使用AdMob官方提供的横幅测试ID:ca-app-pub-3940256099942544/6300978111,不要混淆应用ID(Manifest中带~xxx后缀的ID)和广告单元ID,也不要使用自行创建的测试单元ID。

2. 核对Manifest中的应用ID

确保AndroidManifest.xml内的com.google.android.gms.ads.APPLICATION_ID与AdMob后台注册的应用ID完全一致,包括后缀的~xxx部分,新旧项目需保持统一:

<meta-data
    android:name="com.google.android.gms.ads.APPLICATION_ID"
    android:value="ca-app-pub-9528408865218303~2434754358"/>

3. 验证测试设备的状态

  • 运行旧项目时,查看Logcat会输出类似Use AdRequest.Builder.addTestDevice("XXXX-XXXX-XXXX-XXXX")的日志,将该设备ID添加到广告请求中:
    val adRequest = AdRequest.Builder()
        .addTestDevice("你的设备ID")
        .build()
    
  • 模拟器默认属于测试设备,但自定义模拟器可能需要手动添加设备ID;实体机必须将ID添加到AdMob后台的测试设备列表,或通过代码addTestDevice标记。

4. 对齐新旧项目的依赖版本

检查旧项目Module级build.gradle中的AdMob依赖版本,必须与新项目完全一致,例如:

implementation "com.google.android.gms:play-services-ads:22.6.0"

版本不一致会引发Jetpack Compose环境下的兼容性冲突。

5. 补全广告加载的代码逻辑

你提供的代码仅初始化了AdView,缺少广告加载操作,建议补充加载逻辑并添加错误监听以排查细节:

AndroidView(
    factory = { context ->
        AdView(context).apply {
            setAdSize(AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(context, deviceCurrentWidth))
            adUnitId = unitId
            // 执行广告加载
            loadAd(AdRequest.Builder().build())
            // 添加错误监听,获取更详细的失败信息
            adListener = object : AdListener() {
                override fun onAdFailedToLoad(error: LoadAdError) {
                    Log.e("AdMobDebug", "失败详情: ${error.responseInfo}")
                }
            }
        }
    }
)

同时确认deviceCurrentWidth的计算是否正确,错误的宽度会导致广告尺寸不匹配,进而触发无填充错误。

6. 检查旧项目的发布与隐私设置

  • 如果旧项目已上架应用商店,AdMob可能限制调试版本的测试广告加载,确保运行的是未签名的调试安装包。
  • 检查设备是否开启「限制广告跟踪」,该选项会阻止测试广告加载,需临时关闭。

最后尝试清理缓存

若以上步骤均无效,可清理旧项目的构建缓存(Android Studio菜单栏File -> Invalidate Caches / Restart),或创建新的Compose模块逐步迁移旧项目代码,排查是否存在遗留配置或第三方库冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 19:45:25