这部分内容是之前那个依赖测试包问题看到的答案下面的,有一位大佬梳理了一下这个过程,我在这边翻译一下也供大家参考吧:
步骤1
在项目根目录下执行获取依赖报告的gradle,比如
gradle -q app:dependencies
详细的可以看这里
这可以提供与该问题有关的以ASCⅡ码呈现的树,它会帮助你判断哪些是有冲突的版本
+--- com.android.support.test:testing-support-lib:0.1 (*)
\--- com.android.support.test.espresso:espresso-contrib:2.0
+--- com.android.support:recyclerview-v7:21.0.3
| +--- com.android.support:support-annotations:21.0.3
| \--- com.android.support:support-v4:21.0.3
| \--- com.android.support:support-annotations:21.0.3
+--- com.android.support:support-v4:21.0.3 (*)
\--- com.android.support.test.espresso:espresso-core:2.0 (*)
步骤2
根据问题判断你需要替换什么,比如之前那个问题你需要选择有冲突的项(support-annotations)。一些情况下,我会选择错误版本的树(recyclerview-v7),尽管就我所知那也许不是当前问题下的最好的解决方法。
步骤3
添加"exclude"指令来阻塞你在上一个步骤中选择的冲突项
androidTestCompile ('com.android.support.test.espresso:espresso-contrib:2.0') {
exclude module: 'support-annotations'
}
步骤4
然后就是测试修改的结果了。当然这个可能成功也可能失败~
总结
就是告诉我们了一种方法去获取一些包的依赖信息,这种信息类似一种树,一条依赖路径必须版本一致,如果存在不一致的可以通过exluce指令来阻塞