使用支持lib依赖项v7:26.1.0时出现Gradle dex问题

时间:2018-04-12 22:10:22

标签: android android-studio gradle android-gradle

您好我的build.gradle文件存在问题:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    defaultConfig {
        applicationId "com.example.dell"
        minSdkVersion 19
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:design:26.1.0'
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support:support-v4:26.1.0'
    implementation 'com.android.support:cardview-v7:26.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'

    implementation 'com.google.firebase:firebase-firestore:12.0.1'
    implementation 'com.firebaseui:firebase-ui-firestore:3.3.0'
    implementation 'hanks.xyz:htextview-library:0.1.5'

    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}

Android Studio给了我这个警告:

  

所有com.android.support库必须使用完全相同的版本   规范(混合版本可能导致运行时崩溃)。发现   版本27.1.0,26.1.0。例子包括   com.android.support:recyclerview-v7:27.1.0和   com.android.support:animated-vector-drawable:26.1.0

有人可以帮帮我吗?我不知道该怎么做。我甚至尝试过它。我甚至删除了它,但它仍然没有解决我的问题。

我也看到了这个错误:

  

错误:任务执行失败   ':应用程序:transformDexArchiveWithExternalLibsDexMergerForDebug'

     
    

java.lang.RuntimeException:java.lang.RuntimeException:com.android.builder.dexing.DexArchiveMergerException:无法合并     DEX

  

1 个答案:

答案 0 :(得分:2)

Android Studio警告

  

所有com.android.support库必须使用完全相同的版本   规范(混合版本可能导致运行时崩溃)。发现   版本27.1.0,26.1.0。例子包括   com.android.support:recyclerview-v7:27.1.0和   com.android.support:animated-vector-drawable:26.1.0

问题

您的某个依赖项(com.firebaseui:firebase-ui-firestore:3.3.0)在com.android.support:recyclerview-v7:27.1.0上有一个transitive dependency。同时,您在构建文件中手动声明的支持库使用版本26.1.0

解决方案

compileSdkVersiontargetSdkVersion更新为27,将您的支持库更新为27.1.1

android {
    compileSdkVersion 27
    defaultConfig {
        targetSdkVersion 27
        ...
    }
    ...
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:design:27.1.1'
    implementation 'com.android.support:cardview-v7:27.1.1'
    ...
}

提示(可选)

由于com.android.support:designcom.android.support:appcompat-v7com.android.support:support-v4具有传递依赖关系,因此您无需手动声明appcompat-v7support-v4依赖关系 / em>您声明了design依赖项。