Android构建反复尝试下载不存在的camera-mlkit-vision-1.3.0-rc01问题
问题分析与解决方法
核心原因
- 依赖约束的元数据拉取机制:Gradle依赖树中的
(c)代表依赖约束(Dependency Constraint),它会强制将版本对齐到1.3.0-beta02,但依赖解析过程中,Gradle仍会先尝试拉取被引用的1.3.0-rc01版本的POM文件,用来确认该版本的依赖结构——即便最终会用约束版本替换。如果这个rc01版本在Maven仓库不存在,就会出现重复下载失败的情况。 - 错误的依赖管理配置:项目依赖的AndroidX BOM(物料清单)或某个父POM中,可能错误地将
camera-mlkit-vision:1.3.0-rc01标记为camera2相关模块的管理依赖版本,导致构建时优先尝试拉取这个不存在的版本元数据。 - Gradle缓存残留:本地Gradle缓存中留存了旧的依赖元数据,导致构建过程重复尝试拉取已下线的rc01版本。
解决方法
1. 强制指定依赖版本
在模块的build.gradle(或build.gradle.kts)中直接声明并锁定camera-mlkit-vision的版本,覆盖任何来自依赖管理的版本声明:
dependencies { implementation 'androidx.camera:camera-mlkit-vision:1.3.0-beta02' }
或者通过resolutionStrategy全局强制版本对齐:
configurations.all { resolutionStrategy { force 'androidx.camera:camera-mlkit-vision:1.3.0-beta02' } }
2. 清理Gradle缓存
删除本地Gradle缓存目录,让Gradle重新拉取正确的依赖元数据:
- Windows:
%USERPROFILE%\.gradle\caches - macOS/Linux:
~/.gradle/caches
删除后重新运行gradlew clean build。
3. 定位依赖来源
使用Gradle的dependencyInsight命令,找出引入1.3.0-rc01版本的源头:
./gradlew :app:dependencyInsight --dependency androidx.camera:camera-mlkit-vision
根据输出结果,找到对应的依赖,通过exclude排除错误版本引用,或调整该依赖的版本。
4. 检查AndroidX BOM配置
如果项目使用了AndroidX BOM,确认BOM版本是否正确,避免包含错误的rc01版本:
dependencies { implementation platform('androidx.appcompat:appcompat:1.6.1') // 替换为符合项目需求的稳定版AndroidX BOM }
内容的提问来源于stack exchange,提问作者Hector
相关产品推荐
相关产品推荐

