天天看點

Android依賴庫版本沖突的一個解決方法

問題簡介

講真對Gradle了解不是很深,在網上看了很多解決依賴沖突的文章還是很懵逼,重要是問題依然無法解決。病急亂投醫,在StackOverflow上找到個答案問題解決了,雖然不是很懂。這裡相當于記錄一下,希望也對别人有用。

問題描述

我在添加上

online.osslab:CircleProgress:1.0.0

這個開源庫之後就提示了依賴沖突:

Android依賴庫版本沖突的一個解決方法

原因在于這個庫其内部依賴了

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的支援庫版本強制為所制定的版本。是以依賴沖突問題解決。