Android studio 3.0上的Multidex错误[多个dex文件定义Lnet / sourceforge / zbar / SymbolSet]

时间:2018-01-06 07:48:08

标签: android android-studio-3.0 build-error multidex android-multidex

在将Android Studio更新到3.0.1之前,我从未遇到过dex merge错误。在我更新到3.0.1后,我开始面临以下错误

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

为了解决这个问题,我在stackoverflow和google中尝试了很多解决方案,但我没有得到任何解决方法。

例如:

我尝试添加defaultConfig multiDexEnabled true并更新了Myapplication.java文件。

我试图清理并重建。

我尝试Invalidate catch / Restart然后重建。

构建应用程序时出现以下错误:

Error:Error converting bytecode to dex:
Cause: com.android.dex.DexException: Multiple dex files define Lnet/sourceforge/zbar/SymbolSet;
Error:com.android.dex.DexException: Multiple dex files define Lnet/sourceforge/zbar/SymbolSet;
Error:  at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:661)
Error:  at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:616)
Error:  at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:598)
Error:  at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
Error:  at com.android.dx.merge.DexMerger.merge(DexMerger.java:198)
Error:  at com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:61)
Error:  at com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:36)
Error:  at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1424)
Error:  at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
Error:  at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
Error:  at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
Error:  at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Error:Execution failed for task ':project_name:transformDexArchiveWithDexMergerForDebug'.
> com.android.build.api.transform.TransformException: com.android.dex.DexException: Multiple dex files define Lnet/sourceforge/zbar/SymbolSet;

Build.gradle(项目)包含以下内容:

buildscript {
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'
        classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.8.2'
        classpath 'com.google.gms:google-services:3.1.1'
    }
}
allprojects {
    repositories {
        jcenter()
        google()
        maven {
            url "https://maven.google.com"
        }
    }
}

Build.gradle(module:project)包含以下内容:

apply plugin: 'com.android.application'
apply plugin: 'com.getkeepsafe.dexcount'
android {
    compileSdkVersion 27
    buildToolsVersion '26.0.2'
    defaultConfig {
        applicationId “<—appID—>”
        minSdkVersion 16
        targetSdkVersion 27
        versionCode 1
        versionName "1.16.1"
        multiDexEnabled true
    }
    dexOptions {
        preDexLibraries = false
    }
    packagingOptions {
        exclude 'META-INF/DEPENDENCIES.txt'
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/dependencies.txt'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/LGPL2.1'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/notice.txt'
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
        debug {
            debuggable true
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

repositories {
    mavenCentral()
    maven { url "https://jitpack.io" }
    maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
}
dependencies {
    def supportLibrariesVersion = '27.0.2'
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile fileTree(include: ['*.jar'], dir: 'libs')

//    compile 'cn.bingoogolapple:zbar:1.0.1'

    compile 'cn.bingoogolapple:bga-qrcodecore:1.1.9@aar'
    compile 'cn.bingoogolapple:bga-zbar:1.1.9@aar'

    compile "com.android.support:design:$supportLibrariesVersion"

    compile 'com.google.firebase:firebase-messaging:10.2.1'
    compile 'com.android.support:multidex:1.0.2'
    compile 'it.sephiroth.android.library.imagezoom:imagezoom:+'
    compile "com.android.support:support-v4:$supportLibrariesVersion"
    compile "com.android.support:appcompat-v7:$supportLibrariesVersion"
    compile 'com.google.code.gson:gson:2.4'
    compile 'joda-time:joda-time:2.2'
    compile 'com.michaelpardo:activeandroid:3.1.0-SNAPSHOT'
    compile("com.github.hotchemi:permissionsdispatcher:3.0.1") {
        // if you don't use android.app.Fragment you can exclude support for them
    //        exclude module: "support-v13"
    }
    annotationProcessor "com.github.hotchemi:permissionsdispatcher-processor:3.0.1"
}
apply plugin: 'com.google.gms.google-services'

Android studio版本 - 3.0.1

Android插件版本 - 3.0.1

gradle版本 - 4.1

0 个答案:

没有答案