所有Android支持库必须使用完全相同的版本

时间:2018-03-04 08:06:26

标签: android gradle

编辑:我也是这篇文章

All com.android.support libraries must use the exact same version specification

我升级降级多个版本的android支持库。但我经常收到这个错误。特别是在这些方面

compile 'com.android.support:cardview-v7:21.0.2'
compile 'com.android.support:recyclerview-v7:27.0.2'
compile 'com.android.support:cardview-v7:27.0.2'

我多次清理和重建,但这不是解决方案

除了更改库版本之外,没有具体的解决方案。

这是app gradle文件

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    buildToolsVersion '27.0.2'

    defaultConfig {
        applicationId "com.codepath.the_town_kitchen"
        minSdkVersion 27
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }
    signingConfigs {
        debug {
            storeFile file("keystore/debug.keystore")
        }
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}
repositories { mavenCentral() }

repositories {
    mavenCentral()
    maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
}

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')


    //compile 'com.android.support:appcompat-v7:21.0.3'
    //compile 'com.android.support:support-v4:21.0.3'
    compile 'com.squareup.picasso:picasso:2.4.0'
    compile 'com.loopj.android:android-async-http:1.4.6'
    compile 'com.google.android.gms:play-services:6.5.87'
    // ActiveAndroid for simple persistence with an ORM
    compile 'com.michaelpardo:activeandroid:3.1.0-SNAPSHOT'
    compile 'com.facebook.android:facebook-android-sdk:3.21.1'
    compile 'com.github.flavienlaurent.datetimepicker:library:0.0.2'
    compile 'com.parse.bolts:bolts-android:1.+'
    compile 'com.github.johnkil.android-robototextview:robototextview:2.3.0'
    compile fileTree(dir: 'libs', include: 'Parse-*.jar')
    //compile 'com.stripe:stripe-android:+'
    // compile 'com.android.support:cardview-v7:21.0.2'
    compile 'com.android.support:recyclerview-v7:27.0.2'
    compile 'com.android.support:cardview-v7:27.0.2'

    //compile 'com.android.support:design:26.0.2'

    compile 'com.makeramen:roundedimageview:1.5.0'
    //compile 'com.stripe:stripe-android:2.0.2'
}

有没有什么特别的android studio可以自动设置所有现有库的版本? 我需要一些建议

2 个答案:

答案 0 :(得分:4)

  

有什么特别的安卓工作室可以自动设置   所有现有库的版本?

是的,android studio将通过此代码自动设置所有现有库的版本。 将它放在build.gradle中的app模块的末尾。

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.android.support') {
            details.useVersion '27.0.2'
        }
    }
}

这将找到所有支持依赖项并强制其版本为27.0.2。这将解决您的问题。

答案 1 :(得分:1)

为避免这种情况,您还需要更新图书馆

您的图书馆,例如 Picasso 还包含'com.android.support'库,需要与您的 app 'com.android.support'库兼容,我可以看到你使用旧版本的库'com.android.support'

您需要使用包含兼容的'com.android.support'版本的 libs ,在您的情况下,它是27.0.2

例如 Picasso 需要升级到2.5.2