开发种经常会遇到依赖冲突的问题。
解决办法1:exclude
正常依赖一个第三方库如下:
遇到冲突可以先用dependencies task依赖分析 gradlew :app:dependencies
加入androidx.sqlite这个库依赖冲突了,这样做
sync一下,然后再运行 gradlew :app:dependencies
这时之前依赖冲突的库就不见了。
解决办法2:implementation
这种情况只能处理依赖的组件的library和主app之间的依赖冲突
例如:在子library和主app都依赖了recyclerview,可以使用implementation来阻止子library的依赖项向上传递,大白话就是子libraryA的依赖只能libraryA自己用,别的library(比如主app)就算依赖了libraryA,也不能使用libraryA的依赖项,是不是很像Java里面对象的private变量。
sublib:
sync后查看一下sublib的依赖日志:gradlew :Sublib:dependencies
主app依赖sublib,然后查看主app的依赖日志,并没有发现recyclerview的依赖。说明sublib的recyclerview依赖项没有传递至主app。测试一下,在主app里用一下recyclerview: