android项目开发中经常会遇到库依赖异常,大多是版本依赖的冲突问题,说明下常见的版本依赖冲突解决方式

首页看下我们项目的依赖关系

1
./gradlew dependencies :app:dependencies

依赖包结构

:app表示依赖module
mac下运行可能人别不了命令行,运行

+x gradlew ```添加权限
1
2
3
4
5
6
7

可以看到依赖结构是树状结构,各库下又依赖了android的官方提供的一些库,如果依赖的库不是太多的话,可以使用transitive参数,使得依赖库所需的依赖不直接使用,在依赖库的module中同一级上做依赖关系
```
implementation 'com.android.support:appcompat-v7:26.1.0'
compile ('com.alibaba.android:vlayout:1.2.2@aar') {
transitive = false
}

transitive为false表示单独依赖,true为默认树状依赖

这种解决方式只用于当前的依赖包只是版本导致的,且版本变动不大,起码它的代码package路径一致,如果差异很大可以指定依赖关系中特定包不包含到依赖中

1
2
3
4
implementation 'com.android.support:appcompat-v7:26.1.0'
compile ('com.alibaba.android:vlayout:1.2.2@aar') {
exclude group: 'support-v4'
}