升级至play-services-ads:15.0.2和google-services:3.3.0后Gradle报错求助
嘿,我来帮你搞定这个头疼的问题!
问题根源
你遇到的403禁止访问,核心原因是Google在play-services-ads 15.x版本之后,把这类依赖的存储仓库从Moat的S3服务器迁移到了官方的Google Maven仓库。之前你项目里可能配置了Moat的仓库地址,现在访问这个地址拿15.0.2版本的依赖自然会被拒绝;而离线模式下本地又没有缓存过这个版本的依赖,同步失败也就在情理之中了。
具体解决方案
按照下面的步骤一步步来:
第一步:修正项目根目录的
build.gradle仓库配置
打开项目根目录下的build.gradle文件,找到repositories块,确保添加了Google Maven仓库,同时移除无效的Moat仓库地址(如果有的话)。正确的配置应该类似这样:buildscript { repositories { google() // 或者 maven { url 'https://maven.google.com' } jcenter() // 删掉这行(如果存在):maven { url 'https://s3.amazonaws.com/moat-sdk-builds' } } dependencies { classpath 'com.google.gms:google-services:3.3.0' // 你已经更新到这个版本,完全没问题 // 其他classpath依赖... } } allprojects { repositories { google() // 同样要添加Google Maven仓库 jcenter() // 同样删掉Moat的仓库配置(如果存在) } }第二步:关闭Gradle离线模式
在Android Studio中,要么点击右上角的"Gradle"面板,找到你的项目后取消勾选"Offline work"选项;要么通过Settings -> Build, Execution, Deployment -> Gradle路径关闭离线模式。第三步:重新同步项目
点击Android Studio工具栏里的"Sync Project with Gradle Files"按钮,让Gradle从Google Maven仓库拉取正确的15.0.2版本依赖。额外清理(如果同步还是失败)
如果之前的缓存有残留问题,可以尝试清理Gradle缓存并重新构建:- 执行命令:
./gradlew clean build --refresh-dependencies(Mac/Linux)或者gradlew clean build --refresh-dependencies(Windows) - 或者在Android Studio里点击
File -> Invalidate Caches... -> 选择"Invalidate and Restart"
- 执行命令:
这样操作之后,应该就能顺利拉取到play-services-ads 15.0.2的依赖了。
内容的提问来源于stack exchange,提问作者Bert Marcos

