迁移至Gradle 3版本后所有包报错:无法列出com.facebook.android:facebook-login版本
解决Gradle 3迁移后Facebook Login依赖加载失败的问题
这个问题我之前帮同行排查过,本质是Gradle依赖解析的仓库优先级搞反了——你的项目里配置了Moat的SDK仓库,但Gradle 3的解析逻辑会优先去这个仓库找Facebook的依赖,而Moat的仓库根本没有com.facebook.android:facebook-login的元数据,所以才会报这个错。
给你几个靠谱的解决步骤:
调整仓库顺序,优先官方仓库
打开项目根目录的build.gradle,把Google和Maven Central仓库放在最前面,Moat的仓库往后排。这样Gradle会先去官方仓库找Facebook的依赖,不会瞎跑到Moat的仓库里碰运气:allprojects { repositories { google() mavenCentral() // Moat仓库放在后面 maven { url "https://s3.amazonaws.com/moat-sdk-builds" } } }指定Facebook Login的具体版本
如果你之前用的是动态版本(比如com.facebook.android:facebook-login:+或者latest.release),赶紧换成具体的稳定版本,比如:implementation 'com.facebook.android:facebook-login:15.1.0'动态版本会让Gradle遍历所有仓库找最新版,很容易触发这种跨仓库查找的错误,指定版本更稳。
清理Gradle缓存
有时候缓存里的旧元数据会搞事情,执行下面的命令强制刷新依赖:# Linux/Mac ./gradlew clean build --refresh-dependencies # Windows gradlew clean build --refresh-dependencies要是还不行,直接手动删除项目根目录下的
.gradle/caches文件夹,或者用户目录里的Gradle缓存(比如~/.gradle/caches)。
内容的提问来源于stack exchange,提问作者Luiz Oliveira
相关产品推荐
相关产品推荐

