向Gradle文件添加新依赖项时出错?

时间:2016-12-19 17:46:21

标签: android gradle

我的build.gradle文件:

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.google.android.gms:play-services-location:9.4.0'
    compile 'com.android.support:design:23.4.0'
    compile 'com.github.pwittchen:weathericonview:1.1.0'
    compile 'com.jakewharton:butterknife:8.3.0'
    compile 'com.android.support:support-v4:23.4.0'
    testCompile 'junit:junit:4.12'
    apt 'com.jakewharton:butterknife-compiler:8.3.0'
    compile 'com.android.support.constraint:constraint-layout:1.0.0-beta4'
    compile 'me.everything:overscroll-decor-android:1.0.3'
}

将此依赖项'com.github.paolorotolo:appintro:4.1.0'添加到gradle文件会从gradle文件中将此部分'com.android.support:appcompat-v7:23.4.0'加上红线,并显示以下错误:

All com.android.support libraries must the exact same specification. Found versions 24.2.1, 23.4.0

这是什么意思?添加该依赖项时如何避免此冲突?

1 个答案:

答案 0 :(得分:3)

这意味着新的appintro依赖项会在支持库v24.2.1上添加一个子依赖项,但您已经拥有了一个早期的依赖项。

将您的直接依赖关系更新为同一版本,实际上可能没问题,或者您需要使用旧版本的appintro,而appintro又使用早期版本的支持库。

也就是前者,将您的行更改为:

fuse :: [Int] -> -- The first list
        [Int] -> -- The second list
        [Int]    -- The result
fuse = flip (++)

编辑:我说'可能很好',因为Android支持库是一组非常稳定的API,并且在不同版本中继续保持一致。除此之外,通常在需要更改版本时,您需要评估是否存在任何重大更改或更改行为。