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

Android应用AdMob横幅广告运行时不显示问题排查求助

AdMob横幅广告运行时不显示的排查思路

1. 补全AdView初始化代码

你仅声明了AdView mAdView;,但未在代码中绑定布局控件,这是最直接的问题。在MainActivity的onCreate方法中添加初始化代码:

mAdView = findViewById(R.id.adView);

未初始化就调用loadAd会导致空指针或广告根本未加载。

2. 检查依赖与Manifest配置

  • 确保Module级build.gradle中添加了AdMob依赖(使用最新版本号):
    implementation 'com.google.android.gms:play-services-ads:22.6.0'
    
  • 在AndroidManifest.xml中添加AdMob应用ID(非广告单元ID,测试环境可使用官方测试IDca-app-pub-3940256099942544~3347511713):
    <meta-data
        android:name="com.google.android.gms.ads.APPLICATION_ID"
        android:value="你的应用ID"/>
    

3. 添加广告加载回调,排查错误原因

给AdView设置AdListener,获取广告加载失败的具体信息:

mAdView.setAdListener(new AdListener() {
    @Override
    public void onAdLoaded() {
        Log.d("AdMob", "广告加载成功");
    }

    @Override
    public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
        Log.e("AdMob", "加载失败原因: " + loadAdError.getMessage());
        Log.e("AdMob", "错误代码: " + loadAdError.getCode());
    }
});

常见错误代码对应问题:

  • 3:无广告填充(测试环境极少出现,除非测试ID错误)
  • 0:网络连接异常
  • 1:广告单元ID或应用ID无效

4. 验证设备网络状态

确保模拟器/物理设备网络正常,AdMob需联网加载广告。Android 10+设备需确认已授予网络权限,模拟器需检查是否因代理无法连接AdMob服务器。

5. 配置测试设备

即使使用测试广告单元ID,未标记设备为测试设备也可能出现无填充。在AdRequest中添加测试设备:

AdRequest adRequest = new AdRequest.Builder()
        .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) // 模拟器默认是测试设备
        .addTestDevice("你的物理设备ID") // 可从Logcat日志中获取设备ID
        .build();

6. 检查布局可见性与尺寸

设计时显示正常不代表运行时布局有效,可在onAdLoaded中打印AdView尺寸:

@Override
public void onAdLoaded() {
    Log.d("AdViewSize", "宽: " + mAdView.getWidth() + " 高: " + mAdView.getHeight());
}

若尺寸为0,检查布局约束是否正确,比如确认app:layout_constraint是否让AdView处于可见区域。

7. 确认AdMob后台配置有效性

若使用自定义测试广告单元,需确认其在AdMob后台已启用,且应用ID与Manifest中配置一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 20:06:15