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.
@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
https://stackoverflow.com/questions/47079113/android-studio-3-0-execution-failed-for-task-unable-to-merge-dex - solved multiDexEnabled true
@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:
React Native Firebase
and Invertase
on Twitter @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
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