Android依賴庫版本衝突的一個解決方法
阿新 • • 發佈:2018-12-26
問題簡介
講真對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的支援庫版本強制為所制定的版本。所以依賴衝突問題解決。