Android Studio Gradle移除jcenter()后找不到依赖该如何解决?
问题原因
你遇到的报错是因为使用的这几个依赖的对应版本没有同步到Maven Central,仅在已停止服务的JCenter仓库上传过,所以移除jcenter()后无法拉取到对应构件。
解决方案
方案1:升级依赖到已支持Maven Central的版本(优先推荐)
- 升级Koin依赖版本:Koin 2.0.1仅发布在JCenter,你可以将app模块build.gradle中的Koin依赖升级到2.2.3及以上的稳定版本,这类版本均已同步到Maven Central,无需额外配置仓库即可拉取。如果跨大版本升级,适配少量API变更即可。
- 升级Chartboost广告中介依赖:
com.google.ads.mediation:chartboost8.1.0.0版本仅发布在JCenter,你可以将该依赖升级到8.2.0.0及以上版本,这类版本已经同步到Google官方Maven仓库,只要你的仓库配置中保留google()即可正常拉取。
方案2:临时保留JCenter并限定拉取范围(适合暂时不想适配依赖API变更的场景)
如果暂时没有升级计划,你可以不完全移除jcenter(),而是通过内容过滤规则,仅允许JCenter拉取你缺失的这几个依赖,避免拉取其他存在风险的冗余构件,配置修改如下:
allprojects { repositories { google() mavenCentral() // 仅允许从JCenter拉取指定分组的依赖,降低安全风险 jcenter() { content { includeGroup "org.koin" includeGroup "com.google.ads.mediation" } } } }
修改完成后重新同步项目即可拉取到对应版本的依赖。
方案3:本地/私有仓库托管依赖(适合JCenter完全无法访问的场景)
如果后续JCenter彻底无法访问,你可以提前下载好对应版本的依赖构件,放到项目本地libs目录配置本地依赖,或者上传到团队内部的私有Maven仓库,配置私有仓库地址后拉取即可。
内容的提问来源于stack exchange,提问作者user924
相关产品推荐
相关产品推荐

