随着项目不断的需求迭代,我们引用的三方库日益增多,这时候我们发现了一个问题,第三方库同时也依赖了其他类库,我们依赖的同时,也会把其依赖的类库也引入进来,从而导致以下的现象。
同一个依赖库存在多个版本,这时我们该怎么去解决?
一、查询依赖库的引用情况
查询引用只需要使用到一条gradlew指令。打开AS自带的Terrminal窗口,
输入:gradlew :app:dependencies
得到三方库的引入情况 后面带星号的可以忽略
二、找到重复引用
知道各个三方库的引用情况,这时候就好办了,针对每个库进行过滤排除。
这边以 androidx.recyclerview:recyclerview 为例,项目中使用到的版本为1.1.0,我们先通过第一步的命令,找到1.0.0版本的引用,然后进行排除。搜索一下,一目了然
三、解决重复引用
我的项目的依赖情况如下
通过第二部的命令,找到是bottom-navigation-bar引入时,导致多依赖了一个版本
,我们发现我们引入 com.ashokvarma.android:bottom-navigation-bar:1.4.1 ,其中重复引入的是 androidx.recyclerview:recyclerview
写法:
api (' com.ashokvarma.android:bottom-navigation-bar:1.4.1 '){
exclude group:' androidx.recyclerview ', module:' recyclerview '
}
找到所有需要排除的库,使用以上的写法,最后sync同步代码
最后,recyclerview的引用就剩下1.1.0版本了,至此大功告成!!!!!
网友评论