将Android项目从jcenter切换到mavenCentral的正确方式是什么?
只把jcenter()替换成mavenCentral()只是第一步,还需要完成以下操作才能确保切换完全成功:
检查所有依赖的可用性
不是所有曾在JCenter上的库都迁移到了MavenCentral。你需要逐个核对项目中所有依赖(包括buildscript和模块级build.gradle里的),确认它们是否存在于MavenCentral、Google Maven或其他仍在维护的仓库中。如果有依赖没迁移,你需要找到它的替代仓库,或者考虑更换功能类似的库。修正依赖坐标
部分库迁移到MavenCentral后,groupId、artifactId甚至版本号可能发生变化。比如有些库会调整groupId以符合MavenCentral的规范,遇到这种情况必须同步修改依赖声明的坐标。处理快照版本依赖
MavenCentral对SNAPSHOT版本的分发规则和JCenter不同,如果你的项目使用了快照依赖,需要确认这些快照是否在MavenCentral上可用,或者调整为稳定版本。清理Gradle缓存
本地Gradle缓存可能还留存着JCenter拉取的依赖文件,可能导致构建异常。你可以通过Android Studio的File -> Invalidate Caches...选项清理缓存,也可以手动删除项目根目录下的.gradle/caches文件夹。检查模块级仓库配置
别忘了检查所有模块(比如app模块)的build.gradle文件,如果其中也配置了jcenter(),同样需要替换为mavenCentral()。执行完整构建验证
完成上述操作后,执行./gradlew clean build(Windows系统用gradlew.bat clean build)进行完整构建,根据控制台输出的错误信息逐个解决问题——比如找不到依赖、坐标错误等。
另外,注意到你提供的代码中存在一个语法错误:classpath 'com.google.gms:google-services:4.3.13缺少了闭合的单引号,这会导致构建失败,需要补上:
classpath 'com.google.gms:google-services:4.3.13'
内容的提问来源于stack exchange,提问作者Eldestornillador

