Android Gradle构建请求play-services-location元数据返回502报错
问题根因
google.bintray.com域名已在Bintray服务停服后正式下线,你遇到的502错误是请求已废弃的旧源导致的,之前正常运行是依赖本地Gradle缓存,缓存失效后就会拉取失败。
修复步骤
- 第一步:调整根目录build.gradle的仓库配置,把官方源优先级提到最高,同时强制拦截废弃的Bintray地址:
buildscript { repositories { google() mavenCentral() maven { url "https://maven.google.com" } jcenter() // 仅作为兜底,后续建议逐步替换掉jcenter依赖 } dependencies { classpath 'com.android.tools.build:gradle:4.2.0' } } allprojects { repositories { google() mavenCentral() maven { url "https://maven.google.com" } jcenter() // 移除所有硬编码的废弃Bintray源 all { ArtifactRepository repo -> if(repo.url.toString().contains('google.bintray.com')) { remove repo } } } }
- 第二步:固定play-services-location的版本号,避免动态版本
16.+每次启动都去拉取最新版本元数据:
找到:location模块的build.gradle,将com.google.android.gms:play-services-location:16.+改为固定的可用版本,比如com.google.android.gms:play-services-location:16.0.0。 - 第三步:清理本地缓存并重新构建:
执行以下命令清理缓存:
# Windows系统 gradlew cleanBuildCache gradlew clean # Mac/Linux系统 ./gradlew cleanBuildCache ./gradlew clean
清理后重启Android Studio,重新同步Gradle即可。
内容的提问来源于stack exchange,提问作者Alaeddine Bouhajja
相关产品推荐
相关产品推荐

