Android集成AdMob后AdView不显示广告问题求助
刚接触AdMob集成遇到广告不显示的问题太正常了,我帮你梳理几个新手最容易踩的坑,你可以逐一排查:
1. 先确认ID是否搞混了
你代码里MobileAds.initialize传的my-id应该是AdMob的App ID(控制台里“应用”页面的那个ID,格式是ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy),而不是Ad单元ID!很多新手会把这两个搞混,直接导致初始化失败。
另外,新创建的真实Ad单元通常需要几小时甚至1天才能开始返回广告,测试阶段建议先用官方测试ID:
- 横幅广告测试ID:
ca-app-pub-3940256099942544/6300978111
把这个替换掉布局里的adUnitId,快速验证配置是否正确。
2. 补全布局里的关键配置
你的布局代码没贴全,要确保这几点:
- 必须添加AdMob的命名空间:
xmlns:ads="http://schemas.android.com/apk/res-auto" - AdView的尺寸要符合要求,比如横幅广告建议宽度
match_parent,高度用wrap_content,同时指定adSize="BANNER"
给你个标准的布局示例:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:ads="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <com.google.android.gms.ads.AdView android:id="@+id/adview" android:layout_width="match_parent" android:layout_height="wrap_content" ads:adSize="BANNER" ads:adUnitId="ca-app-pub-3940256099942544/6300978111"/> <!-- 测试ID --> </LinearLayout>
3. 检查权限和依赖是否齐全
- AndroidManifest.xml里要加必要权限:
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
还要在application标签内添加App ID的元数据:
<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="你的真实App ID"/>
- Module级build.gradle里要确保依赖了最新版的Ads SDK:
dependencies { implementation 'com.google.android.gms:play-services-ads:22.6.0' // 可去官网查询最新版本 }
4. 看Logcat找具体错误
这是最直接的排查方法!打开Android Studio的Logcat,过滤关键词Ads,你会看到广告加载的详细日志,比如如果触发onAdFailedToLoad回调,里面会带错误码:
- 错误码3:无广告填充,大概率是真实Ad单元还未生效,或者当前地区没有广告库存
- 错误码0:内部错误,检查配置是否存在遗漏
- 错误码2:网络问题,确认设备联网且权限正常
5. 测试设备的小细节
- 如果用真实设备,关掉广告拦截类的APP
- 如果用模拟器,必须选择带Google APIs的系统镜像,不然Google Play服务不全,广告无法加载
按照这几步排查,基本能解决大部分新手遇到的AdView不显示问题。
内容的提问来源于stack exchange,提问作者Kavin-K
相关产品推荐
相关产品推荐

