解决Gradle编译时的版本冲突

方法 1:排除冲突的依赖

1
2
# 查看 app 模块所依赖的项目(通过 grep 来过滤冲突的模块名称)
./gradlew -q app:dependencies | grep commons-codec
1
2
3
4
5
// 针对某个冲突模块排除
api("com.afollestad.material-dialogs:core:0.9.5.0") {
exclude group: 'com.android.support', module: 'support-v13'
exclude group: 'com.android.support', module: 'support-vector-drawable'
}
1
2
3
4
5
6
7
8
9
10
11
12
// 重置所有相同模块的版本号
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.android.support') {
if (!requested.name.startsWith("multidex")) {
details.useVersion '28.0.0'
}
}
}
}

方法 2:使用 androidx

如果是 com.android.support 库冲突可以使用 androidx 来解决。

具体查看 迁移到 AndroidX  |  Android 开发者  |  Android Developers

参考资料