错误:任务执行失败:无法合并dex

时间:2017-11-10 19:33:15

标签: android android-gradle

  

错误:任务':app:transformDexArchiveWithExternalLibsDexMergerForDebug'的执行失败。   java.lang.RuntimeException:com.android.builder.dexing.DexArchiveMergerException:无法合并dex

此错误自从更新到android 3.0后出现

build.gradle(模块:应用):

apply plugin: 'com.android.application'

android {

    compileSdkVersion 26
    buildToolsVersion '27.0.0'
    defaultConfig {
        multiDexEnabled true
        applicationId "com.example.samue.radiostatus"
        minSdkVersion 21
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

    }
    dexOptions {
        javaMaxHeapSize "4g"
    }




}


dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    testCompile 'junit:junit:4.12'
    implementation 'com.android.support:multidex:1.0.2'
    implementation 'com.android.support:appcompat-v7:26.+'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    implementation 'com.google.code.gson:gson:2.8.1'
    implementation 'com.loopj.android:android-async-http:1.4.9'
    implementation 'com.github.snowdream.android:smartimageview:0.0.2'
    implementation 'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2'
    implementation 'com.mcxiaoke.volley:library-aar:1.0.1'
    implementation 'com.android.support:design:26.+'
    implementation 'com.android.support:support-v4:26.+'
    testCompile 'junit:junit:4.12'
    implementation files('libs/httpmime-4.3.jar')
    implementation files('libs/android-smart-image-view-1.0.0.jar')
    implementation files('libs/activation.jar')
    implementation files('libs/additionnal (1).jar')
    implementation files('libs/android-async-http-1.4.9.jar')
    implementation files('libs/javamail-mailapi-1.4.2.jar')
    implementation files('libs/javamail-smtp-1.4.2.jar')
    implementation files('libs/mail (1).jar')

}

构建gradle(项目):

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

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
        google()


    }
}

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

2 个答案:

答案 0 :(得分:0)

这是因为您有重复的依赖项。您无法从存储库和本地jar文件中混合相同的依赖项。因此,您需要清理应用 z。此外,请勿使用 build.gradle 作为依赖项。使用确切版本的依赖项。这是因为如果您不知道其确切的版本,则无法为库指定问题。

您需要将build.gradle清理为以下内容:

+

答案 1 :(得分:0)

要删除此Dex问题,只需实现一个依赖项。 当我们从同一服务器使用多个不同的服务时,会发生此问题。假设我们在项目中使用广告和Firestore,并且都有一个存储库maven。所以我们需要在存储库上调用不同的数据,我们需要dex依赖来实现。 新的更新依赖关系: -

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

我确定它会永久解决您的问题!