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

添加AdMob后应用崩溃,Android Studio新手求助解决方案

Android Studio 7.3.1集成AdMob崩溃+配置问题解决指南

一、关于buildscript和allprojects报错的原因

你用的是AGP 7.3.1(Android Gradle插件),这个版本已经彻底废弃了项目级build.gradle里的buildscript和allprojects代码块——相关配置早就移到settings.gradle里了,硬加肯定报错。

正确的仓库配置方式是在settings.gradle里加dependencyResolutionManagement块,示例:

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google() // 必须加,AdMob依赖在Google仓库
        mavenCentral()
    }
}
rootProject.name = "你的项目名称"
include ':app'

把这个配置好,就不用管原来的buildscript和allprojects了。

二、应用崩溃的核心排查点

你已经加了ads依赖但启动就崩,90%是以下几个细节没做好,挨个查:

1. 漏加AdMob应用ID到Manifest

这是最常见的坑!必须在AndroidManifest.xml的<application>标签内添加你的AdMob应用ID(注意是应用ID,不是广告单元ID):

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

这个ID在AdMob后台你的应用详情页能直接复制,没有这个配置,App启动就会触发崩溃。

2. 依赖版本太老,和AGP不兼容

你用的play-services-ads:21.4.0是2022年的老版本,和AGP 7.3.1存在兼容问题,直接升级到最新稳定版(比如当前最新是22.6.0):

// 模块级build.gradle里的依赖改成这个
implementation 'com.google.android.gms:play-services-ads:22.6.0'

3. AdMob初始化时机错误

要在App启动时初始化AdMob,比如自定义一个Application类:

public class MyApp extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        // 初始化AdMob
        MobileAds.initialize(this, initializationStatus -> {});
    }
}

然后在AndroidManifest里指定这个类:

<application
    android:name=".MyApp"
    ...>
    ...
</application>

没初始化就加载广告,也会崩。

4. 测试设备的Google Play服务版本过低

AdMob依赖Google Play服务运行,如果你的测试机(或模拟器)里的Google Play服务版本太老,直接会崩。去Google Play商店更到最新,模拟器的话在AVD管理器里更新系统镜像。

5. 横幅广告的代码/布局错误

检查你的横幅广告实现:

  • 布局里的AdView要设置正确的adSize和测试用的广告单元ID(别用正式ID测试,容易触发限制):
<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="ca-app-pub-3940256099942544/6300978111"/> <!-- 这是AdMob官方测试ID,放心用 -->
  • 加载广告的代码要在主线程执行:
AdView adView = findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);

三、排查顺序建议

  1. 先把settings.gradle的仓库配置改对;
  2. 升级ads依赖到最新版;
  3. 补全Manifest里的应用ID和Application初始化;
  4. 用测试广告ID替换正式ID,验证加载逻辑;
  5. 检查测试设备的Google Play服务版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 06:35:26