集成Firebase时Gradle构建报错的解决求助
解决Android集成Firebase时的Gradle配置报错问题
错误1:all buildscript {} blocks must appear before any plugins {} blocks
问题原因
Gradle语法强制要求所有buildscript{}块必须放在plugins{}块之前,初始配置顺序颠倒导致编译失败。
临时调整(引发后续错误)
将buildscript{}移至plugins{}之前,调整后的根目录build.gradle代码如下:
// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { google() mavenCentral() // Maven Central repository } dependencies { classpath 'com.google.gms:google-services:4.3.13' } } plugins { id 'com.android.application' version '7.3.0' apply false id 'com.android.library' version '7.3.0' apply false } allprojects { repositories { google() mavenCentral() // Maven Central repository } }
错误2:Build was configured to prefer settings repositories over project repositories but repository 'Google' was added by build file 'build.gradle'
问题原因
Gradle 7.0+版本默认启用Settings优先仓库配置,禁止在项目build.gradle中通过allprojects{repositories{}}声明仓库,必须统一在settings.gradle中管理全局仓库。
最终解决方案
1. 修改根目录settings.gradle
添加dependencyResolutionManagement块统一管理仓库:
pluginManagement { repositories { gradlePluginPortal() google() mavenCentral() } } dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() } } rootProject.name = "app_Comic" include ':app'
2. 修改根目录build.gradle
移除allprojects{}块,并改用现代Gradle语法引入插件:
// Top-level build file where you can add configuration options common to all sub-projects/modules. plugins { id 'com.android.application' version '7.3.0' apply false id 'com.android.library' version '7.3.0' apply false id 'com.google.gms.google-services' version '4.3.13' apply false }
说明:直接在
plugins块声明google-services插件,替代原buildscript的classpath配置,更符合Gradle 7.x+的规范。
3. 保留app模块build.gradle不变
原app模块配置无需修改,确保com.google.gms.google-services插件已启用即可:
plugins { id 'com.android.application' id 'com.google.gms.google-services' } // 其余android、dependencies配置保持原样
验证步骤
- 同步Gradle文件
- 执行Clean Project(Build → Clean Project)
- 执行Rebuild Project(Build → Rebuild Project)
内容的提问来源于stack exchange,提问作者Conf007
相关产品推荐
相关产品推荐

