jcenter迁移至mavenCentral时无法找到Android Gradle插件4.1.0
问题根因
com.android.tools.build:gradle:4.1.0的分发渠道存在版本历史特殊性:Google官方maven仓库的收录列表显示,google()源中仅收录了AGP 4.1系列的4.1.1、4.1.2、4.1.3小版本,最初的4.1.0正式版仅在jcenter渠道发布,从未同步推送到google()与mavenCentral仓库,因此完全移除jcenter仓库后必然触发404拉取失败的报错。
可落地的解决方法
长期推荐方案(完全符合官方迁移要求)
不依赖任何旧仓库镜像,可根据项目实际情况选择两种改动方向,改动完成后不需要额外配置jcenter相关源即可正常构建:- 同小版本兼容替换:将现有AGP版本从
4.1.0修改为google()源已收录的同系列稳定版(比如4.1.3)。该版本和4.1.0的构建逻辑完全兼容,不需要大改项目代码与Gradle版本配置,是改动成本最低的方案。 - 跨大版本升级:直接升级到google()仓库已正式收录的更高稳定版(推荐4.2.2及以上版本,该版本从发布起就同步上架google()仓库,无jcenter依赖)。升级时注意配套对齐对应的Gradle wrapper版本:AGP 4.2.x系列最低要求Gradle 6.7.1,可在项目根目录的
gradle/wrapper/gradle-wrapper.properties文件中修改distributionUrl字段完成Gradle版本升级。
修正后的项目级build.gradle示例:
// 项目根目录build.gradle配置 buildscript { repositories { // 固定仓库顺序,优先拉取google官方源 google() mavenCentral() } dependencies { // 两种可选写法二选一: // 同系列兼容写法 classpath "com.android.tools.build:gradle:4.1.3" // 跨版本升级写法 // classpath "com.android.tools.build:gradle:4.2.2" } } allprojects { repositories { google() mavenCentral() } } task clean(type: Delete) { delete rootProject.buildDir }- 同小版本兼容替换:将现有AGP版本从
短期过渡方案(不升级现有AGP版本的场景)
若因为项目深度兼容问题无法替换或升级AGP版本,可在buildscript.repositories和allprojects.repositories两个仓库配置块中,追加仍在保留历史jcenter存档的公开镜像地址,用于拉取未迁移到新仓库的4.1.0版本。该方案仅适合短期过渡,因为镜像源无官方安全校验与后续维护,不建议长期使用。对应追加的镜像配置示例:
maven { url "https://maven.aliyun.com/repository/jcenter" }
配置注意事项
- 必须保证仓库配置中
google()的优先级高于mavenCentral()。AGP是Google官方维护的构建插件,优先从google源拉取可避免mavenCentral中的第三方同名依赖包覆盖官方版本,触发包校验失败、构建逻辑异常的问题。
内容的提问来源于stack exchange,提问作者Edalat Feizi
相关产品推荐
相关产品推荐

