React-native-firebase: Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'

Created on 12 Jan 2018  路  17Comments  路  Source: invertase/react-native-firebase

Whwn I am trying to build firebase-config, I get the following error

FAILURE: Build failed with an exception.

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

My app/build.gradle

dexOptions {
        javaMaxHeapSize "4g"
    }

    defaultConfig {
        multiDexEnabled true
        applicationId "com.anarock.agentsapp"
        minSdkVersion 21
        targetSdkVersion 25
        versionCode 43
        versionName "2.2.2"
        ndk {
            abiFilters "armeabi-v7a", "x86"
        }
        resValue "string", "build_config_package", "com.anarock.agentsapp"
    }

If I remove firebase-config, it works fine.

  1. Application Target Platform: android

  1. Development Operating System: macOS high sierra

  1. Build Tools: Android studio 3

  1. React Native version: 0.52

  1. RNFirebase Version: 3.2.2

  1. Firebase Module: config
Android Waiting for User Response

Most helpful comment

@Salakar I already got it sorted, thanks though. It was funny it was just a line of code for me in build.gradle defaultConfig multiDexEnabled true

I will still read those docs, maybe they will help me with another problem I am having with another dependency lol

All 17 comments

@ritz078 Is there a larger stack trace? Unfortunately without that we're not really able to help

Here is the full stacktrace

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70)
        at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:63)
        at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
        at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
        at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88)
        at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
        at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
        at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:124)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:80)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:105)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:99)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:625)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:580)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:99)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
        at com.android.builder.dexing.DxDexArchiveMerger.mergeMultidex(DxDexArchiveMerger.java:266)
        at com.android.builder.dexing.DxDexArchiveMerger.mergeDexArchives(DxDexArchiveMerger.java:133)
        at com.android.build.gradle.internal.transforms.DexMergerTransformCallable.call(DexMergerTransformCallable.java:97)
        at com.android.build.gradle.internal.transforms.ExternalLibsMergerTransform.transform(ExternalLibsMergerTransform.kt:121)
        at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:222)
        at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:218)
        at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:102)
        at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:213)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
        at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$IncrementalTaskAction.doExecute(DefaultTaskClassInfoStore.java:173)
        at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:134)
        at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:121)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:122)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:111)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92)
        ... 27 more
Caused by: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
        at com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:72)
        at com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:36)
        ... 46 more
Caused by: com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/internal/zzbgo;
        at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:661)
        at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:616)
        at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:598)
        at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
        at com.android.dx.merge.DexMerger.merge(DexMerger.java:198)
        at com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:61)
        ... 47 more

Please see: https://rnfirebase.io/docs/v3.2.x/faqs#[Android]-Duplicate-Dex-Files-error-(build-time-error)

These docs weren't very helpful to me. I had multiple packages at 11.6.0, and when adding firebase-ads:11.6.0, I was getting this error. Excluding gms worked to build, but then crashed the app. Now it finally works and the only solution was to use 11.8.0 for all of them instead.

@nkov, in which path did you add 11.8.0?

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
> com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: /.../android/app/build/intermediates/transforms/dexBuilder/debug/0.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/1.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/2.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/3.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/4.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/5.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/6.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/7.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/8.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/9.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/10.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/11.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/12.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/13.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/14.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/15.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/16.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/17.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/18.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/19.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/20.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/21.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/22.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/23.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/24.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/25.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/26.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/27.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/28.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/29.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/30.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/31.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/32.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/33.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/34.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/35.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/36.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/37.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/38.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/39.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/40.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/41.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/42.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/43.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/44.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/45.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/46.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/47.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/48.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/49.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/50.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/51.jar, /.../android/app/build/intermediates/transforms/dexBuilder/debug/52.jar

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 3s
101 actionable tasks: 2 executed, 99 up-to-date
Could not install the app on the device, read the error above for details.
Make sure you have an Android emulator running or a device connected and have
set up your Android development environment:
https://facebook.github.io/react-native/docs/android-setup.html
android {
    compileSdkVersion 26
    buildToolsVersion '27.0.3'

    defaultConfig {
        minSdkVersion 16
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        ndk {
            abiFilters "armeabi-v7a", "x86"
        }
    }
    signingConfigs {
        release {
            storeFile file(MYAPP_RELEASE_STORE_FILE)
            storePassword MYAPP_RELEASE_STORE_PASSWORD
            keyAlias MYAPP_RELEASE_KEY_ALIAS
            keyPassword MYAPP_RELEASE_KEY_PASSWORD
        }
    }
    splits {
        abi {
            reset()
            enable enableSeparateBuildPerCPUArchitecture
            universalApk false  // If true, also generate a universal APK
            include "armeabi-v7a", "x86"
        }
    }
    buildTypes {
        release {
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
            signingConfig signingConfigs.release
        }
    }
    // applicationVariants are e.g. debug, release
    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            // For each separate APK per architecture, set a unique version code as described here:
            // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
            def versionCodes = ["armeabi-v7a":1, "x86":2]
            def abi = output.getFilter(OutputFile.ABI)
            if (abi != null) {  // null for the universal-debug, universal-release variants
                output.versionCodeOverride =
                        versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
            }
        }
    }
}

+1

+1

I also have this problem, Error while merging dex archives.

    implementation(project(':react-native-firebase')) {
        transitive = false
    }

    implementation "com.google.android.gms:play-services-base:15.0.0"
    implementation "com.google.firebase:firebase-core:16.0.0"
    implementation "com.google.firebase:firebase-auth:15.1.0"
    implementation "com.google.firebase:firebase-database:15.0.0"
    implementation "com.google.firebase:firebase-firestore:16.0.0"

It only appears when I include the firestore module

@maheshsgr That link is 404, you could have given a sample of the code as well...

@JacobMGEvans see https://developer.android.com/studio/build/multidex - shows you how to enable multi-dex support and importing the dependency.

Hope that helps.


Loving react-native-firebase and the support we provide? Please consider supporting us with any of the below:

@Salakar I already got it sorted, thanks though. It was funny it was just a line of code for me in build.gradle defaultConfig multiDexEnabled true

I will still read those docs, maybe they will help me with another problem I am having with another dependency lol

If there is any library used in project that have
implementation 'com.google.android.gms:play-services-gcm:+'
must be changed to specific version
implementation 'com.google.android.gms:play-services-gcm:16.0.0'

Eg: react-native-device-info

@chauhanakhilendra23 that is true, but for react-native-device-info at least, I'm the maintainer of that package and we altered our internal dependency. You should update. Also, not a good idea to alter libraries in node_modules directly, use patch-package if needed, or rules in your own gradle files to force dependencies or you'll lose your edits

I also have this problem, Error while merging dex archives.

    implementation(project(':react-native-firebase')) {
        transitive = false
    }

    implementation "com.google.android.gms:play-services-base:15.0.0"
    implementation "com.google.firebase:firebase-core:16.0.0"
    implementation "com.google.firebase:firebase-auth:15.1.0"
    implementation "com.google.firebase:firebase-database:15.0.0"
    implementation "com.google.firebase:firebase-firestore:16.0.0"

It only appears when I include the firestore module

Same issue

@AdeelMughal great! Then the same solution will work for you. Enable MultiDex in your app. Example https://github.com/mikehardy/rnfbdemo/blob/master/make-demo-v6.sh#L124

Was this page helpful?
0 / 5 - 0 ratings

Related issues

alizahid picture alizahid  路  3Comments

n-scope picture n-scope  路  3Comments

romreed picture romreed  路  3Comments

csumrell picture csumrell  路  3Comments

dgruseck picture dgruseck  路  3Comments