JCenter停用后如何规避报错或替换?附构建失败求助
解决JCenter 502构建错误及替代方案
问题重现
执行./gradlew build --warning-mode all时出现如下构建错误:
Execution failed for task ':app:dataBindingMergeDependencyArtifactsDebug'. > Could not resolve all files for configuration ':app:debugRuntimeClasspath'. > Could not resolve com.applovin:applovin-sdk:+.\n Required by: project :app > prox-lib:prox-utils-max-saleoff:2.3.5 > Failed to list versions for com.applovin:applovin-sdk. > Unable to load Maven meta-data from https://jcenter.bintray.com/com/applovin/applovin-sdk/maven-metadata.xml. > Could not HEAD 'https://jcenter.bintray.com/com/applovin/applovin-sdk/maven-metadata.xml'. Received status code 502 from server: Bad Gateway
JCenter恢复时间说明
JCenter早在2021年就宣布停止接收新包上传,仅保留只读服务,后续频繁出现稳定性问题,官方没有明确的恢复时间表,且长期来看会逐步停止服务,完全不建议继续依赖它构建项目。
规避报错的具体方案
1. 锁定依赖版本并切换至Maven Central
你使用的com.applovin:applovin-sdk:+是动态版本号,构建时需要拉取JCenter上的元数据来获取最新版本,这是触发错误的核心原因。解决步骤:
- 查找
com.applovin:applovin-sdk的稳定版本(比如11.14.0,确认该版本存在于Maven Central) - 在项目中配置优先级最高的Maven Central仓库,并强制锁定依赖版本:
// 项目根目录build.gradle dependencyResolutionManagement { repositories { mavenCentral() // 移除或注释jcenter() // jcenter() } } // app模块build.gradle configurations.all { resolutionStrategy { force 'com.applovin:applovin-sdk:11.14.0' // 替换为实际可用的稳定版本 } }
2. 强制间接依赖从Maven Central拉取
你的项目依赖prox-lib:prox-utils-max-saleoff:2.3.5,这个库可能硬编码了JCenter作为依赖源。可以通过配置强制指定依赖的拉取仓库:
configurations.all { resolutionStrategy { eachDependency { details -> if (details.requested.group == 'com.applovin') { details.useRepository { name = 'MavenCentral' url = 'https://repo1.maven.org/maven2/' } } } } }
3. 本地缓存依赖(极端情况)
如果某些依赖在Maven Central找不到,可手动下载对应的jar/aar包,放在项目的libs目录下,配置本地仓库引用:
// app模块build.gradle repositories { flatDir { dirs 'libs' } } dependencies { implementation(name: 'applovin-sdk-11.14.0', ext: 'aar') }
4. 替换第三方依赖库
如果prox-lib:prox-utils-max-saleoff:2.3.5严重依赖JCenter上的包,且无法通过上述方法解决,建议联系该库的维护者更新仓库配置,或寻找功能替代的依赖库。
内容的提问来源于stack exchange,提问作者ninhnau19
相关产品推荐
相关产品推荐

