Android Build Error in Unity 2020.3.3f1

Hi all,

I upgrade my existing project to Unity 2020.3.3f1 and I get a build failure when trying to make the build. I didn’t have this in Unity 2019.2. I’m not really familiar with Android stuff so I’m not sure how to fix it. For SDK / NDK / JDK, I have the preferences set to using default Unity versions. I have minimum API set to 24 and Target API set to Highest Installed.

G:\Game Projects\Shieldwall Chronicles Mobile - Copy\TempleOfShadows\Temp\gradleOut\launcher\build\intermediates\external_file_lib_dex_archives\release\out\1_unity-classes.jar: D8: Type bitter.jnibridge.JNIBridge$a is defined multiple times: G:\Game Projects\Shieldwall Chronicles Mobile - Copy\TempleOfShadows\Temp\gradleOut\launcher\build\intermediates\external_file_lib_dex_archives\release\out\1_unity-classes.jar:classes.dex, G:\Game Projects\Shieldwall Chronicles Mobile - Copy\TempleOfShadows\Temp\gradleOut\launcher\build\intermediates\external_file_lib_dex_archives\release\out\0_unity-classes.jar: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 bitter.jnibridge.JNIBridge$a is defined multiple times: G:\Game Projects\Shieldwall Chronicles Mobile - Copy\TempleOfShadows\Temp\gradleOut\launcher\build\intermediates\external_file_lib_dex_archives\release\out\1_unity-classes.jar:classes.dex, G:\Game Projects\Shieldwall Chronicles Mobile - Copy\TempleOfShadows\Temp\gradleOut\launcher\build\intermediates\external_file_lib_dex_archives\release\out\0_unity-classes.jar: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:445)
    at com.android.build.gradle.internal.tasks.Workers$ActionFacade.run(Workers.kt:348)
    at org.gradle.workers.internal.AdapterWorkAction.execute(AdapterWorkAction.java:50)
    at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:47)
    at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1$1.create(NoIsolationWorkerFactory.java:65)
    at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1$1.create(NoIsolationWorkerFactory.java:61)
    at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:98)
    at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.execute(NoIsolationWorkerFactory.java:61)
    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.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
    at org.gradle.workers.internal.AbstractWorker.executeWrappedInBuildOperation(AbstractWorker.java:41)
    at org.gradle.workers.internal.NoIsolationWorkerFactory$1.execute(NoIsolationWorkerFactory.java:56)
    at org.gradle.workers.internal.DefaultWorkerExecutor$3.call(DefaultWorkerExecutor.java:215)
    at org.gradle.workers.internal.DefaultWorkerExecutor$3.call(DefaultWorkerExecutor.java:210)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runExecution(DefaultConditionalExecutionQueue.java:215)
    at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runBatch(DefaultConditionalExecutionQueue.java:164)
    at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.run(DefaultConditionalExecutionQueue.java:131)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
    at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
    at java.lang.Thread.run(Thread.java:748)
Caused by: com.android.tools.r8.CompilationFailedException: Compilation failed to complete
    at com.android.tools.r8.utils.O.a(:65)
    at com.android.tools.r8.D8.run(:11)
    at com.android.builder.dexing.D8DexArchiveMerger.mergeDexArchives(D8DexArchiveMerger.java:117)
    ... 34 more
Caused by: com.android.tools.r8.utils.b: Error: G:\Game Projects\Shieldwall Chronicles Mobile - Copy\TempleOfShadows\Temp\gradleOut\launcher\build\intermediates\external_file_lib_dex_archives\release\out\1_unity-classes.jar:classes.dex, Type bitter.jnibridge.JNIBridge$a is defined multiple times: G:\Game Projects\Shieldwall Chronicles Mobile - Copy\TempleOfShadows\Temp\gradleOut\launcher\build\intermediates\external_file_lib_dex_archives\release\out\1_unity-classes.jar:classes.dex, G:\Game Projects\Shieldwall Chronicles Mobile - Copy\TempleOfShadows\Temp\gradleOut\launcher\build\intermediates\external_file_lib_dex_archives\release\out\0_unity-classes.jar:classes.dex
    at com.android.tools.r8.utils.y0.a(:21)
    at com.android.tools.r8.utils.x0.a(:30)
    at com.android.tools.r8.utils.x0.a(:10)
    at java.util.concurrent.ConcurrentHashMap.merge(ConcurrentHashMap.java:1990)
    at com.android.tools.r8.utils.x0.a(:6)
    at com.android.tools.r8.graph.A0$c.a(:6)
    at com.android.tools.r8.dex.a.a(:85)
    at com.android.tools.r8.dex.a.a(:12)
    at com.android.tools.r8.D8.d(:6)
    at com.android.tools.r8.D8.b(:1)
    at com.android.tools.r8.utils.O.a(:30)
    ... 36 more
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':launcher: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 bitter.jnibridge.JNIBridge$a is defined multiple times: G:\Game Projects\Shieldwall Chronicles Mobile - Copy\TempleOfShadows\Temp\gradleOut\launcher\build\intermediates\external_file_lib_dex_archives\release\out\1_unity-classes.jar:classes.dex, G:\Game Projects\Shieldwall Chronicles Mobile - Copy\TempleOfShadows\Temp\gradleOut\launcher\build\intermediates\external_file_lib_dex_archives\release\out\0_unity-classes.jar: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
BUILD FAILED in 1s
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)

I don’t really know much about Android so the error message is greek to me. Can anyone provide any guidance? Much appreciated,

1 Like

Quick update, I was able to get past this enabling R8 and Release on my Minify settings:

7054912--837406--upload_2021-4-19_9-13-14.png

Can I confirm that Release is the right option for submitting the final version of the game to the play store?

1 Like

You should use the 2019 version

The same in 2020.3.11f1
Does anyone know and can explain the cause of it? Please :frowning:

Okey. Here is the workaround:
Restart Unity. If restarting will not solve the problem, try to cleanup project’s Library folder before starting Unity.
In fact, we have to restart Unity every time when add or update (build new version) some java lib :eyes:
Debugging becomes painful for me.

Can someone suggest something smarter, please?

Enabling R8 and Release on Minify don’t work for me, because it breaks AndroidJavaObject calls.

1 Like

worked for me, unity 2020.1.2f1

1 Like

For me I reinstalled unity 2020.3, this time I made sure to check Android SDK, NDK and Open JDK.
7503133--924575--upload_2021-9-17_21-46-49.png

Bonjour! Je suis on dirait en retard mais j’ai rencontré le même problème sauf que chez moi j’ai réinstallé et réinstallé et redémarrer tout mais rien ne fonctionne et aujourd’hui j’ai même restauré mon PC et j’ai installé Unity 2020.3.48f1 en m’assurant que les SDK NDK et OpenJDK sont aussi installé avec et avec tout ça le même problème répète “Androïde Builde failed” J’ai besoins d’aide !