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

Android测试中mockk与Mockito共存引发dispatcher.jar重复冲突求助

问题解决:MockK环境搭建中的依赖冲突与重复文件问题

核心问题:同时引入MockK和Mockito导致的依赖冲突

你同时添加了MockK和Mockito两套Mock框架的依赖,这会引发依赖树中的重复依赖(比如dispatcher.jar就是kotlinx-coroutines相关的重复依赖源),进而导致打包冲突。必须二选一,不能同时混用两套框架。

解决方案:清理冗余依赖

如果你选择使用MockK(更适配Kotlin)

移除所有Mockito相关的依赖,修改后的build.gradle依赖块如下:

// 单元测试依赖
testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4'
testImplementation "io.mockk:mockk:1.13.5"

// 仪器化测试依赖
androidTestImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4'
androidTestImplementation "io.mockk:mockk-android:1.13.5"

如果你选择使用Mockito

移除所有MockK相关的依赖,同时统一Mockito版本(你当前mockito-core和mockito-inline版本不一致,也会引发问题):

// 单元测试依赖
testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4'
testImplementation 'org.mockito:mockito-core:5.3.1'
testImplementation 'org.mockito:mockito-inline:5.3.1'
testImplementation "org.mockito.kotlin:mockito-kotlin:3.2.0"

// 仪器化测试依赖
androidTestImplementation 'org.mockito:mockito-core:5.3.1'
androidTestImplementation 'com.linkedin.dexmaker:dexmaker-mockito-inline:2.28.3'
androidTestImplementation "org.mockito.kotlin:mockito-kotlin:3.2.0"

解决剩余的重复文件问题

清理冗余依赖后,如果还存在META-INF相关的重复文件报错,补充完整的排除规则:

packagingOptions {
    exclude 'META-INF/INDEX.LIST'
    exclude 'META-INF/LICENSE.md'
    exclude 'META-INF/LICENSE-notice.md'
}

Android Studio中查找重复文件/依赖冲突的简便方法

  • Gradle依赖树分析:在Terminal中执行(替换app为你的模块名):
    ./gradlew app:dependencies
    
    搜索重复的依赖包名,比如kotlinx-coroutines或者mockito,查看哪些依赖库重复引入了同一资源。
  • 内置依赖分析工具:打开File > Project Structure > Modules,选中你的模块后切换到Dependencies标签,点击右上角的Analyze Dependencies,工具会自动检测冲突的依赖版本和重复资源。
  • 代码检查工具:执行Analyze > Inspect Code,选择整个项目范围,在检查结果的Android Lint > Correctness分类下,找到Duplicate files packaged in APK项,查看所有重复文件的详细来源。
  • AGP内置检查任务:如果使用Android Gradle Plugin 7.0及以上版本,可执行:
    ./gradlew app:checkDuplicateClasses
    
    快速定位重复类和资源文件的冲突。

内容的提问来源于stack exchange,提问作者lostintranslation

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 15:43:22