如何解决与相同依赖项的多个版本的冲突

时间:2017-06-26 06:10:46

标签: android gradle android-gradle

我在app / build gradle文件中将我的依赖项标记为24.2.1,但是当我运行“gradlw app:dependencies”时,它显示25.1.0已解决。不确定这是怎么发生的,因为我还没有添加任何与25.1.0的依赖?有什么方法可以找到哪个库拉最新的

  gradlw app:dependencies
    -- com.android.support:appcompat-v7:24.2.1 -> 25.1.0
       +--- com.android.support:support-annotations:25.1.0
       +--- com.android.support:support-v4:25.1.0

在Android Studio enter image description here

1 个答案:

答案 0 :(得分:5)

当发生这种情况时,因为您正在使用的另一个库正在引入相同依赖项的其他版本。

您需要使用命令

找出您的依赖关系树
./gradlew app:dependencies

在Android Studio终端中执行。

然后,您需要向上滚动终端窗口,直到找到依赖关系树,检查来自第三方库的一些嵌套依赖项,如下面的示例图所示。

enter image description here

如果您发现第三方依赖项与您在buid.gradle中声明的相同依赖项之间存在版本冲突,则可以排除已提取的库并强制库使用您的版本:

对于support-library的问题,您可以这样做:

compile ("com.example.libwithconfictdependency:library:1.0.0") {
    //this to exclude specific modules
    exclude group: 'com.android.support', module: 'support-v4'
    //or this to exclude every modules of the same package
    exclude group: 'com.android.support'
}

这种情况下的问题是:

  
      
  1. 库无法工作,因为您手动覆盖的依赖项与库代码
  2. 不兼容   
  3. 您需要在build.gradle中提供所有必需的依赖项
  4.   

由您决定如何处理此事。