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

Android Studio中Admob Banner引发应用崩溃问题求助

修复AdMob Banner导致的应用崩溃问题

嘿,我看你这情况大概率是用了已废弃的旧版AdMob SDK导致的崩溃,咱们一步步来把问题解决掉:

1. 替换XML布局里的旧AdView控件

你现在用的com.google.ads.AdView是Google Play Services整合前的旧版AdMob组件,早就被淘汰了,换成当前官方推荐的控件:

修改后的XML布局:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:ads="http://schemas.android.com/apk/res-auto" <!-- 这里改成res-auto命名空间 -->
    android:id="@+id/main_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context="com.ajater.mj.vaccalc.MainActivity">

    <!-- 替换成新版AdView组件 -->
    <com.google.android.gms.ads.AdView
        android:id="@+id/adView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        ads:adSize="BANNER"
        ads:adUnitId="你的AdUnitID" /> <!-- 填入你在AdMob后台创建的真实ID -->

</android.support.design.widget.CoordinatorLayout>

2. 更新MainActivity里的代码

同步替换对应的类引用,适配新版SDK,别忘了添加初始化步骤:

import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.MobileAds;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // 新版AdMob必须先初始化
    MobileAds.initialize(this);

    // 加载Banner广告
    AdView adView = findViewById(R.id.adView);
    AdRequest adRequest = new AdRequest.Builder()
            // 测试阶段建议添加测试设备ID,避免触发AdMob限制
            .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
            .build();
    adView.loadAd(adRequest);
}

3. 完善AndroidManifest配置

除了已有的权限,还要在<application>标签内添加AdMob应用ID元数据:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="my.app.name">

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

    <application>
        <!-- 添加AdMob应用ID,在AdMob后台获取 -->
        <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="你的AdMob应用ID"/>
            
        <!-- 你的Activity声明... -->
    </application>

</manifest>

4. 确保添加正确的依赖

在你的Module级别build.gradle文件里添加AdMob的最新稳定版依赖:

dependencies {
    // 其他项目依赖...
    implementation 'com.google.android.gms:play-services-ads:22.6.0'
}

额外注意点

  • 确认你的AdUnitID和应用ID都是在AdMob后台正确创建的,并且和应用包名完全匹配
  • 测试阶段一定要用测试设备或者手动添加测试设备ID,否则可能会被AdMob限制广告展示
  • 检查你的项目minSdkVersion是否符合AdMob SDK要求(当前最低支持API 19)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:21:21