问题简介
讲真对Gradle了解不是很深,在网上看了很多解决依赖冲突的文章还是很懵逼,重要是问题依然无法解决。病急乱投医,在StackOverflow上找到个答案问题解决了,虽然不是很懂。这里相当于记录一下,希望也对别人有用。
问题描述
我在添加上online.osslab:CircleProgress:1.0.0
这个开源库之后就提示了依赖冲突:
原因在于这个库其内部依赖了com.android.support:cardview-v7:25.2.0
,而当前的support库的版本都是26.0.0-alpha1,故产生了依赖冲突。
解决方法
在build.gradle文件中添加:
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.android.support') {
if (!requested.name.startsWith("multidex")) {
//这里指定需要统一的依赖版本,这里统一为26.0.0-alpha1
details.useVersion '26.0.0-alpha1'
}
}
}
}
这里为Groovy的语法,大意就是将所有com.andriod.support的支持库版本强制为所制定的版本。所以依赖冲突问题解决。