Android Studio 3.0中的DexArchiveMergerException

5

以下是关于build.gradle的编译错误详细信息:

顶层build.gradle

buildscript {
repositories {
    google()
    jcenter()
    mavenCentral()
 }
dependencies {
    classpath 'com.android.tools.build:gradle:3.0.0'
 }
}

allprojects {
    repositories {
        google()
        jcenter()
        mavenCentral()
        maven { url 'https://maven.google.com' }
    }
}

task clean(type: Delete) {
         delete rootProject.buildDir
     }

App-Level build.gradle

    apply plugin: 'com.android.application'

    android {
        compileSdkVersion 27
        defaultConfig {
            applicationId "com.abc"
            minSdkVersion 15
            targetSdkVersion 27
            versionCode 1
            versionName "1.0"
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
            multiDexEnabled true

            dataBinding {
                enabled true
            }

            dexOptions {
                javaMaxHeapSize "4g"
            }
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }

        compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_8
            targetCompatibility JavaVersion.VERSION_1_8
        }
    }

    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        testImplementation 'junit:junit:4.12'
        androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'

        // Android
        implementation 'com.android.support:appcompat-v7:27.+'
        implementation 'com.android.support:support-v4:27.+'
        implementation 'com.android.support:support-annotations:27.+'

        // RxJava & RxAndroid
        implementation 'io.reactivex.rxjava2:rxandroid:2.+'
        implementation 'io.reactivex.rxjava2:rxjava:2.+'
        implementation 'com.tbruyelle.rxpermissions2:rxpermissions:0.9.4@aar'


        //Glide for images
        implementation 'com.github.bumptech.glide:glide:4.+'
        annotationProcessor 'com.github.bumptech.glide:compiler:4.+'

        // Retrofit : Network
        implementation 'com.squareup.retrofit2:retrofit:2.+'
        implementation 'com.squareup.retrofit2:converter-jackson:2.+'
        implementation 'com.google.code.gson:gson:2.+'

        // Multidex
        implementation 'com.android.support:multidex:1.+'

    }

这是错误信息

错误:执行任务失败,任务名称为':app:transformDexArchiveWithExternalLibsDexMergerForDebug'。 com.android.builder.dexing.DexArchiveMergerException: com.android.tools.r8.errors.CompilationError: Program type already present: android.support.v4.app.ActionBarDrawerToggle$DelegateProvider

4个回答

4

首先,尝试以下步骤:

  • 清理你的项目
  • 然后重新构建

如果问题仍然存在:

  • 从文件菜单中选择“使缓存失效并重启”

最后,如果问题仍然存在,请尝试以下步骤:

删除:
\build
.idea
.gradle
app\build

然后重新构建。希望这能有所帮助;)


当你遇到奇怪的错误时,这应该是第二次尝试。就在执行“无效缓存/重启”之后。 - Tomas Ivan

1

1
通过添加以下内容解决了此问题: implementation 'com.google.firebase:firebase-analytics:15.0.0'
很奇怪,但根据Firebase文档,firebase-analytics已包含在firebase-core中。

0

你不应该使用以 + 结尾的库。你应该指定你的版本。

        // Android
        implementation 'com.android.support:appcompat-v7:27.0.0'
        implementation 'com.android.support:support-v4:27.0.0'
        implementation 'com.android.support:support-
         annotations:27.0.0'

        // RxJava & RxAndroid
        implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
        implementation 'io.reactivex.rxjava2:rxjava:2.0.1'
        implementation 'com.tbruyelle.rxpermissions2:rxpermissions:0.9.4@aar'


        //Glide for images
        implementation 'com.github.bumptech.glide:glide:4.3.0'
        annotationProcessor 'com.github.bumptech.glide:compiler:4.3.0'

        // Retrofit : Network
        implementation 'com.squareup.retrofit2:retrofit:2.3.0'
        implementation 'com.squareup.retrofit2:converter-jackson:2.3.0'
        implementation 'com.google.code.gson:gson:2.8.1'

        // Multidex
        implementation 'com.android.support:multidex:1.0.1'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接