无法合并dex gradle构建失败

时间:2018-12-19 09:38:17

标签: android gradle

无法构建旧版android应用。每当我尝试在Android Studio 3.0.1中构建它时,它都会引发以下错误。我尝试过这里可用的各种解决方案,但无济于事。感谢发现错误配置的任何帮助或解决此问题的技巧。预先感谢。

错误代码

Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
> com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex

这是项目的构建配置。

app/build.gradle
apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    buildToolsVersion "27.0.3"
    useLibrary 'org.apache.http.legacy'

    defaultConfig {
        applicationId "com.app.one"
        minSdkVersion 21
        targetSdkVersion 28
        multiDexEnabled true
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
    dependencies {
        implementation 'org.apache.httpcomponents:httpclient-android:4.3.5.1'
        implementation 'com.google.zxing:core:3.2.0'
        implementation 'com.journeyapps:zxing-android-embedded:3.0.2@aar'
        implementation files('src/main/libs/apache-mime4j-0.6.jar')
        implementation files('src/main/libs/commons-ssl-0.3.11.jar')
        implementation files('src/main/libs/core-2.2.jar')
        implementation files('src/main/libs/httpmime-4.0.1.jar')
    }
    repositories {
        jcenter()
    }
}


ProjectOne/gradle.build
buildscript {
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'
    }
}

allprojects {
    repositories {
        jcenter()
        google()
    }
}

1 个答案:

答案 0 :(得分:0)

尝试注释掉以下几行(我不确定这是否会导致依赖关系冲突或意外错误):

   // implementation files('src/main/libs/apache-mime4j-0.6.jar')
   // implementation files('src/main/libs/commons-ssl-0.3.11.jar')
   // implementation files('src/main/libs/core-2.2.jar')
   // implementation files('src/main/libs/httpmime-4.0.1.jar')

将此compileSdkVersion 28编辑为compileSdkVersion 'android-P'

删除buildToolsVersion "27.0.3"以避免版本冲突。 Gradle会知道要编译哪个合适的版本

还有一件事情,因为您的minSdk是> = 21,因此您无需添加此依赖项

      implementation 'com.android.support:multidex:1.0.3'