做android项目,module多的话,很容易遇到包冲突的问题。比如v4既有26.1.0版本,也有27.1.0版本。
这时候,要找出两个版本都是从哪个module 或者第三方包引入的,然后再用exclude命令,把不要的版本去除。
例如

implementation (‘com.google.firebase:firebase-core:15.0.0’) {
exclude group: ‘com.android.support’, module: ‘support-v4’
}

那么,怎么查真个工程的依赖呢?网上很多说,用命令行执行:gradle -q dependencies。
这个在windows下,很容易出错,原因是gradle 这个可执行文件,并不在当前工程下,而是在AndroidStudio的安装目录,没有加到环境变量,就不能执行。
其实没必要用命令行,可以用AndroidStudio集成好的入口:

在AndroidStudio的右边,以下入口,双击dependencies,就可以了。
如果是要整个app的关系,则双击的是module app下的help/dependencies。如果是只想看其他子模块,则在对应的模块,双击help/dependencies即可。

%title插图%num

依赖关系结果示例:

%title插图%num
如果duplicate的包,真的有多个版本,把以上依赖关系数据,复制到文本编辑器,搜module名字(如android-support),就能找到对应得包,以及是哪个包带入的。