天天看点

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的支持库版本强制为所制定的版本。所以依赖冲突问题解决。