Android项目中com.android.support:multidex依赖版本冲突如何解决?
解决Android项目中multidex依赖版本冲突问题
这个问题我做Android项目时也碰到过,核心原因就是你的主应用模块和测试依赖库(这里是dexmaker-mockito)引用的multidex版本不一致——主应用用的是1.0.3,而测试库依赖的是1.0.1,Gradle在构建时无法确定该用哪个版本,所以抛出了冲突错误。
下面给你几个实用的解决办法,按优先级推荐:
方法一:强制全局统一multidex版本
这是最直接的方案,让Gradle忽略所有依赖库指定的multidex版本,强制使用你主应用的版本。在app模块的build.gradle中添加配置:
android { // 保留你原有的配置 ... dexOptions { javaMaxHeapSize "4g" } ... } // 添加这个配置块,强制统一multidex版本 configurations.all { resolutionStrategy.force 'com.android.support:multidex:1.0.3' } dependencies { ... compile 'com.linkedin.dexmaker:dexmaker-mockito:2.16.0' ... }
这样所有依赖都会使用你指定的1.0.3版本,彻底解决版本不一致的问题。
方法二:排除测试依赖中的multidex
如果你不想全局强制版本,可以在引入dexmaker-mockito时,排除它自带的multidex依赖,让它复用主应用的版本:
dependencies { ... compile('com.linkedin.dexmaker:dexmaker-mockito:2.16.0') { exclude group: 'com.android.support', module: 'multidex' } ... }
这个方案更精准,只针对冲突的依赖做处理,不会影响其他库的版本选择。
方法三:升级测试依赖库(可选)
你可以查一下dexmaker-mockito的最新版本,看看新版本是否已经将multidex依赖升级到了1.0.3。如果有兼容的新版本,直接替换依赖版本即可:
dependencies { ... // 替换为最新兼容的版本号 compile 'com.linkedin.dexmaker:dexmaker-mockito:最新版本号' ... }
不过这个方法依赖于库的维护进度,如果最新版仍未更新multidex版本,还是前两个方案更可靠。
内容的提问来源于stack exchange,提问作者Insoft
相关产品推荐
相关产品推荐

