Flutter 1.22.2集成Firebase时项目构建失败求助
错误详情
构建任务:app:processDebugResources失败,核心问题是无法解析配置:app:debugRuntimeClasspath的所有依赖项,具体表现为无法解析com.google.android.gms:play-services-measurement-base:[18.0.2]。该依赖由以下组件引入:
project :app > com.google.firebase:firebase-analytics:18.0.2 > com.google.android.gms:play-services-measurement:18.0.2
project :app > com.google.firebase:firebase-analytics:18.0.2 > com.google.android.gms:play-services-measurement-api:18.0.2
project :app > com.google.firebase:firebase-analytics:18.0.2 > com.google.android.gms:play-services-measurement-sdk:18.0.2
project :app > com.google.firebase:firebase-analytics:18.0.2 > com.google.android.gms:play-services-measurement:18.0.2 > com.google.android.gms:play-services-measurement-impl:18.0.2
project :app > com.google.firebase:firebase-analytics:18.0.2 > com.google.android.gms:play-services-measurement-api:18.0.2 > com.google.android.gms:play-services-measurement-sdk-api:18.0.2
错误根源:
无法列出com.google.android.gms:play-services-measurement-base的版本。
无法从https://google.bintray.com/exoplayer/com/google/android/gms/play-services-measurement-base/maven-metadata.xml加载Maven元数据。
无法获取该资源,服务器返回状态码502: Bad Gateway
问题原因
google.bintray.com仓库已停止服务(JFrog Bintray于2021年正式关闭),Gradle尝试从这个失效的仓库拉取依赖,导致请求返回502错误。
解决方案
1. 移除失效的Bintray仓库配置
检查项目根目录的build.gradle(Gradle 7+需检查settings.gradle),删除所有指向google.bintray.com的仓库配置,例如:
maven { url 'https://google.bintray.com/exoplayer' }
2. 确保配置了官方仓库
在根目录的仓库配置中,添加Google Maven和Maven Central仓库,确保依赖能从官方源拉取:
repositories { google() mavenCentral() }
3. 升级Firebase依赖版本
旧版本的Firebase Analytics(18.0.2)可能硬编码了失效的仓库地址,建议升级到最新稳定版。修改app模块build.gradle中的依赖:
implementation 'com.google.firebase:firebase-analytics:21.5.0' // 可替换为当前最新稳定版
4. 清理缓存并重新构建
执行以下命令清理Gradle缓存,强制重新拉取依赖:
./gradlew clean build --refresh-dependencies
内容的提问来源于stack exchange,提问作者Edson Calixto

