执行connectedDebugAndroidTest Gradle任务时hamcrest-core依赖解析失败
问题根因
该报错属于典型的依赖版本冲突问题:
- 依赖树中多个组件依赖了不同版本的
org.hamcrest:hamcrest-core androidx.test.ext:junit:1.1.3间接依赖junit4.12,需要hamcrest-core 1.3版本,同时Gradle配置了该依赖的严格版本约束为1.3espresso-contrib、espresso-core相关测试组件间接依赖hamcrest-core 2.2版本,两个版本不兼容导致依赖解析失败
解决方案
以下两种方案任选其一即可:
方案1:全局强制统一hamcrest版本
在App模块的build.gradle文件最外层(和android、dependencies块平级)添加如下配置:
configurations.all { resolutionStrategy { // 全局强制指定hamcrest相关依赖的版本,选2.2或1.3均可,推荐2.2适配新版测试组件 force "org.hamcrest:hamcrest-core:2.2" force "org.hamcrest:hamcrest-library:2.2" } }
方案2:排除junit中引入的低版本hamcrest依赖
修改测试依赖配置,排除androidx.test.ext:junit中传递的hamcrest依赖:
androidTestImplementation ('androidx.test.ext:junit:1.1.3') { exclude group: 'org.hamcrest' }
验证操作
修改配置后重新执行Gradle项目同步,再启动connectedDebugAndroidTest任务即可正常运行。
内容的提问来源于stack exchange,提问作者Yuriy Surzhikov
相关产品推荐
相关产品推荐

