All of a sudden, Gradle fails to build and throws the following error:
CommandInvokationFailure: Gradle build failed. D:\Unity\Editor\Data\PlaybackEngines\AndroidPlayer/Tools\OpenJDK\Windows\bin\java.exe -classpath "D:\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib\gradle-launcher-4.6.jar" org.gradle.launcher.GradleMain "-Dorg.gradle.jvmargs=-Xmx4096m" "assembleRelease"
stderr[ D8: Program type already present: com.unity3d.ads.BuildConfig
FAILURE: Build failed with an exception.
What went wrong: Execution failed for task ':transformDexArchiveWithExternalLibsDexMergerForRelease'.
com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: D:\Unity Projects\VegOrNonVeg\Temp\gradleOut\build\intermediates\transforms\dexBuilder\release\0.jar, D:\Unity Projects\VegOrNonVeg\Temp\gradleOut\build\intermediates\transforms\dexBuilder\release\1.jar, D:\Unity Projects\VegOrNonVeg\Temp\gradleOut\build\intermediates\transforms\dexBuilder\release\2.jar, D:\Unity Projects\VegOrNonVeg\Temp\gradleOut\build\intermediates\transforms\dexBuilder\release\3.jar, D:\Unity Projects\VegOrNonVeg\Temp\gradleOut\build\intermediates\transforms\dexBuilder\release\4.jar, D:\Unity Projects\VegOrNonVeg\Temp\gradleOut\build\intermediates\transforms\dexBuilder\release\5.jar, D:\Unity Projects\VegOrNonVeg\Temp\gradleOut\build\intermediates\transforms\dexBuilder\release\6.jar, D:\Unity Projects\VegOrNonVeg\Temp\gradleOut\build\intermediates\transforms\dexBuilder\release\7.jar, D:\Unity Projects\VegOrNonVeg\Temp\gradleOut\build\intermediates\transforms\dexBuilder\release\8.jar, D:\Unity Projects\VegOrNonVeg\Temp\gradleOut\build\intermediates\transforms\dexBuilder\release\9.jar, D:\Unity Projects\VegOrNonVeg\Temp\gradleOut\build\intermediates\transforms\dexBuilder\release\10.jar, D:\Unity Projects\VegOrNonVeg\Temp\gradleOut\build\intermediates\transforms\dexBuilder\release\11.jar, D:\Unity Projects\VegOrNonVeg\Temp\gradleOut\build\intermediates\transforms\dexBuilder\release\12.jar, D:\Unity Projects\VegOrNonVeg\Temp\gradleOut\build\intermediates\transforms\dexBuilder\release\13.jar, D:\Unity Projects\VegOrNonVeg\Temp\gradleOut\build\intermediates\transforms\dexBuilder\release\14.jar, D:\Unity Projects\VegOrNonVeg\Temp\gradleOut\build\intermediates\transforms\dexBuilder\release\15.jar, D:\Unity Projects\VegOrNonVeg\Temp\gradleOut\build\intermediates\transforms\dexBuilder\release\16.jar, D:\Unity Projects\VegOrNonVeg\Temp\gradleOut\build\intermediates\transforms\dexBuilder\release\17.jar Learn how to resolve the issue at . Program type already present: com.unity3d.ads.BuildConfig
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.
I've tried uninstalling the existing SDK and reinstalled SDK for Oreo
I'm also getting the following error: UnityAdsEditor: Initialize(3113808, False); UnityEditor.Advertisements.UnityAdsEditor:EditorOnLoad()
The project had no issues before. No new update or any code changes.
3 Answers
Issue Resolved:
The existing package for Unity Ads was causing this problem.
Go to Package Manager and Remove/Update the Advertisement package (Mine was 2.0.8, updated it to 3.0.3).
Go to Edit > Project Settings > Player and select .NET 4.x Equivalent for the Scripting Runtime Version under Configuration.
If possible choose Minimum API Level as 19 or above.
Make sure to delete the existing Unity Ads folder if present in the Assets Folder of the Project window.
If, like me, you have tried multiple solution from multiple sources and nothing works, then there is a alternate solution to the problem.
- Refer to this video from where I got this alternate solution from but do not forget to follow step 3 & 4.
- In your Unity got to file -> Build Settings and instead of "build", click on the "Export" check box and export the project to a newly created separate folder.
- In the next step you will require Android Studio installed. Open Android studio and from file-> click on "open" and then select the folder you had created during export in unity. It is important to mention that when android studio asks you to choose a android sdk for building the apk file, always choose the sdk installed for your android studio and not the one installed for your Unity. Upgrade and Sync the gradle as per your needs and requirement.
- Then Go to Gradle Scripts(see the left side of your android studio)->gradle.properties and delete the line "android.enableR8=false".
- Then click on the Build option (present on the top bar of android studio)->Build Bundle(s)/APK(s)->Build APK(s).
For me it was having my project in an external drive, spent all day trying to fix this. Moved it to my documents folder, and the build ran flawlessly.