构建GitHub Android项目访问Bintary仓库403被禁止如何解决依赖问题
Bintray依赖403错误解决方案
Could not GET 'https://dl.bintray.com/asf/asf/com/asfoundation/appcoins-contract-proxy/0.4.5.19b/appcoins-contract-proxy-0.4.5.19b.pom'. Received status code 403 from server: Forbidden
问题原因
JFrog官方在2021年已经全面关停Bintray服务,所有原有公开仓库均已下线,因此访问dl.bintray.com域名下的仓库地址都会返回403禁止访问错误。
解决方法
- 方案1:替换为国内公共镜像仓库
修改项目的Gradle仓库配置(旧版项目修改根目录build.gradle的allprojects > repositories块,新版Gradle修改settings.gradle的dependencyResolutionManagement > repositories块),优先添加国内镜像站,删除原有的Bintray仓库配置:
修改完成后重新同步Gradle,多数常用依赖可直接拉取成功。repositories { // 阿里云公共镜像覆盖绝大多数公开依赖 maven { url 'https://maven.aliyun.com/repository/public' } maven { url 'https://maven.aliyun.com/repository/google' } // 保留官方公共仓库作为兜底 google() mavenCentral() // 注释或删除原有Bintray相关配置 // maven { url 'https://dl.bintray.com/asf/asf' } } - 方案2:使用依赖的新托管地址
若对应依赖已经迁移到MavenCentral、JitPack等其他公开仓库,直接将新的仓库地址添加到上述repositories配置中即可拉取对应版本依赖。 - 方案3:升级依赖版本
若该依赖的新版本已经发布到公共仓库,可以直接在模块级build.gradle中修改依赖声明,升级到可用的新版本,规避已经下架的旧版本。 - 方案4:手动导入离线依赖包
若上述方案都不生效,可从其他可信渠道获取对应版本的jar或aar包,放入项目的libs目录,在模块级build.gradle中添加如下配置即可完成导入:dependencies { implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar']) }
内容的提问来源于stack exchange,提问作者Yahya Hassani
相关产品推荐
相关产品推荐

