You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Could not resolve androidx.test:runner:1.6.2构建错误

解决androidx.test:runner版本冲突导致的构建失败问题

问题分析

你遇到的是典型的Gradle依赖版本冲突:项目直接声明了androidx.test:runner:1.6.2,但androidx.compose.ui:ui-test-junit4:1.7.8通过依赖链引入了1.6.1版本,且该依赖带有严格版本约束(strictly),导致Gradle无法自动调和版本,最终构建失败。

可行解决方案

1. 强制指定runner版本

在app模块的build.gradle中,给runner依赖添加强制版本声明,覆盖所有间接依赖的版本:

androidTestImplementation('androidx.test:runner:1.6.2') {
    force = true
}

这个方法会让Gradle忽略所有其他依赖对runner版本的约束,强制使用你指定的1.6.2版本。

2. 排除ui-test-junit4中的runner依赖

在引入ui-test-junit4时,排除它自带的runner依赖,确保项目只使用你声明的版本:

androidTestImplementation('androidx.compose.ui:ui-test-junit4:1.7.8') {
    exclude group: 'androidx.test', module: 'runner'
}

同时保留你已声明的androidTestImplementation 'androidx.test:runner:1.6.2',这样就能彻底避免冲突。

3. 全局约束runner版本

如果项目有多个模块,可以在settings.gradle的dependencyResolutionManagement块中全局统一runner版本,确保所有模块都使用指定版本:

dependencyResolutionManagement {
    constraints {
        androidTestImplementation('androidx.test:runner') {
            version {
                strictly '1.6.2'
            }
        }
    }
}

这个配置会让整个项目的所有测试依赖都强制使用1.6.2版本的runner。

4. 确认依赖约束来源

先执行Gradle的依赖洞察命令,明确具体是哪个依赖带来的严格版本约束:

./gradlew app:dependencyInsight --dependency androidx.test:runner --configuration debugAndroidTestRuntimeClasspath

从输出中可以看到约束的具体来源,再针对性调整相关依赖的版本(比如尝试升级ui-test-junit4到最新版本,看是否已经更新了依赖的runner版本)。

小提示

你执行的命令里有个小错误,正确的构建命令应该是:

./gradlew clean build --scan

内容的提问来源于stack exchange,提问作者A. Cedano

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 07:16:09