Android项目通过settings.gradle添加Firebase依赖遇配置问题求助
背景
基于最新版Android Studio导航模板创建的项目,添加Firebase库时遭遇Gradle构建失败,尝试多种网络方案后仍未解决。
当前Gradle配置文件
settings.gradle
pluginManagement { repositories { gradlePluginPortal() google() mavenCentral() maven { url "https://jitpack.io" } } } dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() maven { url "https://jitpack.io" } gradlePluginPortal() // jcenter() } } rootProject.name = "RowingBG Achievements" include ':app'
build.gradle (Project级)
buildscript { ext { gradle_version = "8.0.2" kotlin_version = '1.8.20' gms_version = '4.3.15' } // repositories { // google() // mavenCentral() // gradlePluginPortal() // maven { url "https://maven.google.com" } // maven { url "https://jitpack.io" } // } // dependencies { // classpath "com.android.tools.build:gradle:$gradle_version" // classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // classpath 'com.google.dagger:hilt-android-gradle-plugin:2.41' // classpath "com.google.gms:google-services:$gms_version" // } } plugins { id 'com.android.application' version "$gradle_version" apply false id 'com.android.library' version "$gradle_version" apply false id 'org.jetbrains.kotlin.android' version "$kotlin_version" apply false id "com.google.gms.google-services" version "$gms_version" apply false } // Top-level build file where you can add configuration options common to all sub-projects/modules.
build.gradle (Module: app级)
apply plugin: 'com.android.application' apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.gms.google-services' //apply plugin: 'kotlin-android' //apply plugin: 'kotlin-kapt' android { namespace 'com.bzahov.rowingbg' compileSdk 33 defaultConfig { applicationId "com.bzahov.rowingbg" minSdk 28 targetSdk 33 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = '1.8' } buildFeatures { viewBinding true } } dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:32.1.0') implementation 'com.google.firebase:firebase-auth-ktx' implementation 'com.google.firebase:firebase-analytics-ktx' implementation 'com.google.firebase:firebase-core' implementation "com.google.firebase:firebase-firestore-ktx" implementation "com.google.firebase:firebase-database-ktx" implementation "com.google.firebase:firebase-storage-ktx" implementation "com.google.android.gms:play-services-auth-ktx" ...}
遇到的错误
- 初始错误:
No variants found for ':app'. Check build files to ensure at least one variant exists. at:
com.android.tools.idea.gradle.project.sync.AndroidModule.prepare(GradleModules.kt:266)
- 解决上述问题后出现的依赖错误:
Could not find com.google.firebase:firebase-core:.
Required by:
project :app
Failed to resolve: com.google.android.gms:play-services-auth-ktx
Add Google Maven repository and sync project
Affected Modules: app
- 伴随的运行时类路径解析错误:
Caused by: org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all files for configuration ':app:debugRuntimeClasspath'.
- 同步警告:无法访问Google Maven仓库
解决方案步骤
1. 修复依赖声明问题
- 移除
implementation 'com.google.firebase:firebase-core':Firebase BoM已包含对应版本,且新版本中firebase-core已被firebase-analytics替代,无需单独声明。 - 为Google Play Services依赖添加版本管理:在
dependencies块中先添加Play Services BoM,再声明具体依赖,避免版本缺失:// 添加Google Play Services BoM implementation platform('com.google.android.gms:play-services-bom:20.1.0') // 已无需指定版本 implementation "com.google.android.gms:play-services-auth-ktx"
2. 优化插件应用方式
将模块级build.gradle的旧版apply plugin替换为新的插件块写法,更符合Gradle 7+规范:
plugins { id 'com.android.application' id 'org.jetbrains.kotlin.android' id 'com.google.gms.google-services' }
3. 确保仓库配置有效性
- 确认
settings.gradle的dependencyResolutionManagement中已包含google()仓库,这是获取Firebase和Google Play Services依赖的核心仓库。 - 若网络无法访问Google仓库,可添加国内镜像仓库到
repositories块:maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/public' }
4. 解决变体缺失问题
- 先解决所有依赖解析错误,再执行
File -> Sync Project with Gradle Files同步项目。 - 清理Android Studio缓存:
File -> Invalidate Caches... -> Invalidate and Restart,排除缓存导致的同步异常。
5. 网络代理检查
- 打开Android Studio设置:
File -> Settings -> Appearance & Behavior -> System Settings -> HTTP Proxy,确认代理配置正确(若使用代理),或切换为No proxy尝试直接连接。
内容的提问来源于stack exchange,提问作者Red Coder

