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

Sam*_*Sam 1 android gradle android-gradle-plugin

我在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
Run Code Online (Sandbox Code Playgroud)

在Android Studio中 在此输入图像描述

Mat*_*Pag 5

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

您需要使用该命令找出您的依赖关系树

./gradlew app:dependencies
Run Code Online (Sandbox Code Playgroud)

在Android Studio终端中执行.

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

在此输入图像描述

当您发现第三方依赖项与您在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'
}
Run Code Online (Sandbox Code Playgroud)

这种情况下的问题是:

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

这取决于你决定如何处理这个问题.