Android项目Gradle同步失败:无法解析Firebase相关依赖
这种突然的Gradle同步失败确实让人抓狂,尤其是之前一直稳定运行的项目。结合你的报错日志、配置和已尝试的操作,问题大概率出在依赖仓库配置不全或插件/依赖版本兼容性上,给你几个针对性的解决步骤:
1. 完善Google Maven仓库的全局配置
你的项目里只在app模块的build.gradle中添加了Google Maven仓库,但Gradle需要在**根目录的build.gradle**中全局配置仓库源,才能正确拉取Firebase和Play服务的依赖:
修改根目录build.gradle:
buildscript { repositories { google() // Android Studio 3.0+推荐用这个替代maven { url 'https://maven.google.com' } jcenter() } dependencies { // 对应compileSdkVersion 25,选择适配的Gradle插件版本 classpath 'com.android.tools.build:gradle:3.0.1' // 与Firebase 11.6.2匹配的Google服务插件版本 classpath 'com.google.gms:google-services:3.2.1' classpath 'com.onesignal:onesignal-gradle-plugin:0.8.1' } } allprojects { repositories { google() maven { url 'https://jitpack.io' } jcenter() // 兼容部分老依赖的拉取 } }
注意:不要只在app模块配置Google仓库,全局配置才能让所有模块(包括第三方插件)都能访问到Google的依赖源。
2. 统一Firebase与Play服务的版本
你使用的Firebase版本是11.6.2,要确保所有Google服务相关依赖的版本完全一致,同时Google服务插件版本要和Firebase版本匹配(比如11.6.2对应com.google.gms:google-services:3.2.1),避免版本冲突导致依赖解析失败。
检查你的app/build.gradle中的依赖,确保没有混用不同版本的Google服务类库。
3. 排查OneSignal插件的影响
OneSignal的gradle插件可能会干扰依赖解析逻辑,你可以先临时注释掉OneSignal相关配置,验证同步是否正常:
// 注释掉插件 // plugins { id 'com.onesignal.androidsdk.onesignal-gradle-plugin' version '0.8.1' } // apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin' // 注释掉依赖 // compile 'com.onesignal:OneSignal:3.7.1'
如果同步成功,说明是OneSignal插件与当前Firebase版本不兼容,可以尝试升级OneSignal到兼容的版本(比如3.10.9,适配Firebase 11.x系列),再重新添加配置。
4. 手动清理Gradle本地缓存
本地缓存损坏也可能导致依赖拉取失败,手动删除以下目录后重新同步:
- Windows系统:
C:\Users\<你的用户名>\.gradle\caches
删除后打开Android Studio,执行File -> Sync Project with Gradle Files。
5. 检查代理设置
如果近期修改过代理配置,可能导致无法访问Google Maven仓库:
- 打开
File -> Settings -> Appearance & Behavior -> System Settings -> HTTP Proxy - 设置为
No proxy(如果没有使用代理),或配置正确的代理信息 - 重启Android Studio后重新同步
如果以上步骤都无效,可以尝试升级Gradle插件和Firebase版本到更稳定的组合(比如将Firebase升级到12.0.1,Gradle插件升级到3.1.4,Google服务插件升级到4.0.1),同时将compileSdkVersion提升到26,不过这可能需要调整其他依赖的版本以适配更高的SDK。
内容的提问来源于stack exchange,提问作者SSP

