(笔记1)解决三方库引入导致依赖多版本共存问题
随着项目不断的需求迭代,我们引用的三方库日益增多,这时候我们发现了一个问题,第三方库同时也依赖了其他类库,我们依赖的同时,也会把其依赖的类库也引入进来,从而导致以下的现象。
![](https://img.haomeiwen.com/i5611392/0b757ceac4e4b929.png)
同一个依赖库存在多个版本,这时我们该怎么去解决?
一、查询依赖库的引用情况
查询引用只需要使用到一条gradlew指令。打开AS自带的Terrminal窗口,
输入:gradlew :app:dependencies
![](https://img.haomeiwen.com/i5611392/21d3c364254e4608.png)
得到三方库的引入情况 后面带星号的可以忽略
![](https://img.haomeiwen.com/i5611392/2a11742936ce7fea.png)
二、找到重复引用
知道各个三方库的引用情况,这时候就好办了,针对每个库进行过滤排除。
这边以 androidx.recyclerview:recyclerview 为例,项目中使用到的版本为1.1.0,我们先通过第一步的命令,找到1.0.0版本的引用,然后进行排除。搜索一下,一目了然
![](https://img.haomeiwen.com/i5611392/feeba4c43febf7b5.png)
三、解决重复引用
我的项目的依赖情况如下
![](https://img.haomeiwen.com/i5611392/56bf4a2fb46544ae.png)
通过第二部的命令,找到是bottom-navigation-bar引入时,导致多依赖了一个版本
![](https://img.haomeiwen.com/i5611392/2cf6a96733c75787.png)
我们引入 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同步代码
![](https://img.haomeiwen.com/i5611392/0f3a9c05a687d795.png)
最后,recyclerview的引用就剩下1.1.0版本了,至此大功告成!!!!!