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

Android应用集成AdMob遇报错:buildscript块需先于plugins块

解决AdMob集成时build.gradle的报错问题

问题

在Android应用中集成AdMob广告,修改项目级build.gradle添加buildscript和allprojects块后,出现报错:

所有buildscript {}块必须出现在脚本中任何plugins {}块之前

原项目级build.gradle代码:

plugins {
id 'com.android.application' version '7.2.2' apply false
id 'com.android.library' version '7.2.2' apply false
}

task clean(type: Delete) {
delete rootProject.buildDir
}


buildscript {
repositories {
    google()
    mavenCentral()
}
}

allprojects {
repositories {
    google()
    mavenCentral()
}
}

解决方法

Gradle语法明确要求buildscript块必须放在所有plugins块之前,调整代码顺序即可修复:

修改后的项目级build.gradle:

buildscript {
repositories {
    google()
    mavenCentral()
}
}

allprojects {
repositories {
    google()
    mavenCentral()
}
}

plugins {
id 'com.android.application' version '7.2.2' apply false
id 'com.android.library' version '7.2.2' apply false
}

task clean(type: Delete) {
delete rootProject.buildDir
}

可选优化(AGP 7.0+适配)

针对Android Gradle插件7.0及以上版本,推荐将仓库配置统一迁移到settings.gradle的dependencyResolutionManagement块中,能大幅简化项目级build.gradle的结构:

settings.gradle示例:

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
    }
}
rootProject.name = "Test"
include ':app'

此时项目级build.gradle可移除buildscript和allprojects块,仅保留核心内容:

plugins {
id 'com.android.application' version '7.2.2' apply false
id 'com.android.library' version '7.2.2' apply false
}

task clean(type: Delete) {
delete rootProject.buildDir
}

其他配置确认

你的app模块build.gradle和AndroidManifest.xml配置已正确:

  • app模块已添加AdMob依赖:implementation 'com.google.android.gms:play-services-ads:21.2.0'
  • Manifest已配置AdMob测试应用ID:<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ca-app-pub-3940256099942544~3347511713"/>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 00:05:21