Android库:版本冲突问题

时间:2017-04-26 08:26:15

标签: android

我的Android应用build.gradle

中存在以下依赖关系
compileSdkVersion 25
buildToolsVersion "25.0.2"

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:design:25.0.0'
    compile 'com.android.support:appcompat-v7:25.0.0'
    compile 'com.google.android.gms:play-services:10.0.1'
    compile 'com.google.firebase:firebase-core:10.0.1'
    compile 'com.google.firebase:firebase-messaging:10.0.1'
    compile 'com.firebase:firebase-jobdispatcher-with-gcm-dep:0.6.0'
    compile 'com.google.firebase:firebase-appindexing:10.0.1'
    compile 'com.google.firebase:firebase-ads:10.0.1'
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:multidex:1.0.1'
}

但是关于版本兼容性的错误,如下所示,这里要更改的是什么,我无法弄清楚:(

enter image description here

2 个答案:

答案 0 :(得分:3)

我有同样的问题我所做的是编译更高版本的库,这是创建此错误,在app:gradle only。 例如在你的情况下

compile 'com.android.support:mediarouter-v7:25.0.0'

在app中添加:gradle。 可能更像这个mediarouter库如果它仍然给出错误添加它们jst像这样(使它们更高版本)。

答案 1 :(得分:2)

首先,您需要找出由库的冲突版本组成的内容。最简单的方法是:

  1. 在Android Studio中打开Terminal窗格。
  2. 输入:./gradlew androidDependencies
  3. 找到代表包含冲突的ENCLOSING库的行。
  4. 然后只对冲突的库使用exclude语句,如下所示:

    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'    
    })
    

    (假设com.android.support.test.espresso:espresso-core:2.2.2为ENCLOSING库,com.android.support:support-annotations为冲突的示例)