DexArchiveMergerException

I keep getting a DexArchiveMergerException when I try to eject/prebuild and then compile the android APK. How would I tackle this problem?

I know that I can do some things in the Android config files, but we only eject for our end to end tests with expo and apply the config-plugins/detox plugin. This works well on iOS but on Android I keep getting the exception.

Is this caused by a third party dependency in package.json? Is there a way to navigate around this without ejecting permanently?

Here is the output I’m getting:

> Task :app:mergeExtDexRelease FAILED
/Users/nephix/.gradle/caches/transforms-3/0d9b7d4f3dc53e22fa1c188e3102b65a/transformed/appcompat-1.2.0-runtime/classes.dex: D8: Type androidx.appcompat.app.ActionBar$DisplayOptions is defined multiple times: /Users/nephix/.gradle/caches/transforms-3/0d9b7d4f3dc53e22fa1c188e3102b65a/transformed/appcompat-1.2.0-runtime/classes.dex, /Users/nephix/.gradle/caches/transforms-3/e34c8bd754e5227d69eee6dc33009b0b/transformed/appcompat-1.2.0-runtime/classes.dex
com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives:
Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes.
Type androidx.appcompat.app.ActionBar$DisplayOptions is defined multiple times: /Users/nephix/.gradle/caches/transforms-3/0d9b7d4f3dc53e22fa1c188e3102b65a/transformed/appcompat-1.2.0-runtime/classes.dex, /Users/nephix/.gradle/caches/transforms-3/e34c8bd754e5227d69eee6dc33009b0b/transformed/appcompat-1.2.0-runtime/classes.dex
        at com.android.builder.dexing.D8DexArchiveMerger.getExceptionToRethrow(D8DexArchiveMerger.java:132)
        at com.android.builder.dexing.D8DexArchiveMerger.mergeDexArchives(D8DexArchiveMerger.java:119)
        at com.android.build.gradle.internal.transforms.DexMergerTransformCallable.call(DexMergerTransformCallable.java:102)
        at com.android.build.gradle.internal.tasks.DexMergingTaskRunnable.run(DexMergingTask.kt:432)
        at com.android.build.gradle.internal.tasks.Workers$ActionFacade.run(Workers.kt:242)
        at org.gradle.workers.internal.AdapterWorkAction.execute(AdapterWorkAction.java:57)
        at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:63)
        at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:67)
        at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:63)
        at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:97)
        at org.gradle.workers.internal.NoIsolationWorkerFactory$1.lambda$execute$0(NoIsolationWorkerFactory.java:63)
        at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:44)
        at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:41)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:76)
        at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:76)
        at org.gradle.workers.internal.AbstractWorker.executeWrappedInBuildOperation(AbstractWorker.java:41)
        at org.gradle.workers.internal.NoIsolationWorkerFactory$1.execute(NoIsolationWorkerFactory.java:60)
        at org.gradle.workers.internal.DefaultWorkerExecutor.lambda$submitWork$2(DefaultWorkerExecutor.java:200)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runExecution(DefaultConditionalExecutionQueue.java:214)
        at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runBatch(DefaultConditionalExecutionQueue.java:164)
        at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.run(DefaultConditionalExecutionQueue.java:131)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: com.android.tools.r8.CompilationFailedException: Compilation failed to complete, origin: /Users/nephix/.gradle/caches/transforms-3/0d9b7d4f3dc53e22fa1c188e3102b65a/transformed/appcompat-1.2.0-runtime/classes.dex
        at Version.fakeStackEntry(Version_2.1.62.java:0)
        at com.android.tools.r8.utils.Y.a(SourceFile:78)
        at com.android.tools.r8.D8.run(D8.java:11)
        at com.android.builder.dexing.D8DexArchiveMerger.mergeDexArchives(D8DexArchiveMerger.java:117)
        ... 36 more
Caused by: com.android.tools.r8.utils.b: Type androidx.appcompat.app.ActionBar$DisplayOptions is defined multiple times: /Users/nephix/.gradle/caches/transforms-3/0d9b7d4f3dc53e22fa1c188e3102b65a/transformed/appcompat-1.2.0-runtime/classes.dex, /Users/nephix/.gradle/caches/transforms-3/e34c8bd754e5227d69eee6dc33009b0b/transformed/appcompat-1.2.0-runtime/classes.dex
        at com.android.tools.r8.utils.T0.error(SourceFile:1)
        at com.android.tools.r8.utils.T0.a(SourceFile:2)
        at com.android.tools.r8.utils.R0.b(SourceFile:6)
        at com.android.tools.r8.utils.R0.a(SourceFile:24)
        at com.android.tools.r8.utils.R0.a(SourceFile:10)
        at java.base/java.util.concurrent.ConcurrentHashMap.merge(ConcurrentHashMap.java:2048)
        at com.android.tools.r8.utils.R0.a(SourceFile:6)
        at com.android.tools.r8.graph.O0$c.f(SourceFile:3)
        at com.android.tools.r8.dex.a.a(SourceFile:294)
        at com.android.tools.r8.dex.a.a(SourceFile:222)
        at com.android.tools.r8.D8.d(D8.java:6)
        at com.android.tools.r8.D8.b(D8.java:1)
        at com.android.tools.r8.utils.Y.a(SourceFile:36)
        ... 38 more


FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:mergeExtDexRelease'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
   > com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives:
     Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes.
     Type androidx.appcompat.app.ActionBar$DisplayOptions is defined multiple times: /Users/nephix/.gradle/caches/transforms-3/0d9b7d4f3dc53e22fa1c188e3102b65a/transformed/appcompat-1.2.0-runtime/classes.dex, /Users/nephix/.gradle/caches/transforms-3/e34c8bd754e5227d69eee6dc33009b0b/transformed/appcompat-1.2.0-runtime/classes.dex

* 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

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.9/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 49s