Before updating the Android Studio to version 3.0.1 I never faced dex merge error. After I updated to 3.0.1, I started facing the following error
Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
> com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
To get this resolved, I tried many solutions in stackoverflow and google but I didn't get any work around.
For example:
I tried adding to defaultConfig
multiDexEnabled
true with Myapplication.java
file updated.
I tried to clean and rebuild.
I tried to Invalidate catch/Restart and then rebuild.
Building application gave the following error :
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(project) contain following :
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) contain following :
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 version - 3.0.1
Android plugin version - 3.0.1
gradle version - 4.1