Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Another gradle build failure?!?

Discussion in 'Editor & General Support' started by jmansa, Apr 7, 2021.

  1. jmansa

    jmansa

    Joined:
    Apr 13, 2012
    Posts:
    75
    I am trying to update my app for android but am having tons of issues...

    I have created a clean project and with no plugins/sdk's it builds OK. When adding any plugin, in this case Admob SDK I get this error:

    CommandInvokationFailure: Gradle build failed.
    /Applications/Unity/Hub/Editor/2020.3.2f1/PlaybackEngines/AndroidPlayer/OpenJDK/bin/java -classpath "/Applications/Unity/Hub/Editor/2020.3.2f1/PlaybackEngines/AndroidPlayer/Tools/gradle/lib/gradle-launcher-5.6.4.jar" org.gradle.launcher.GradleMain "-Dorg.gradle.jvmargs=-Xmx4096m" "assembleRelease"

    stderr[
    Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
    Note: /Volumes/MP SSD 1/MansaPlay/App Development/Numfeud/CleanAndroidProject/Temp/gradleOut/unityLibrary/src/main/java/com/unity3d/player/UnityPlayerActivity.java uses or overrides a deprecated API.
    Note: Recompile with -Xlint:deprecation for details.
    /Volumes/MP SSD 1/MansaPlay/App Development/Numfeud/CleanAndroidProject/Temp/gradleOut/launcher/build/intermediates/external_file_lib_dex_archives/release/out/0_jetified-unity-classes.jar: D8: Type bitter.jnibridge.JNIBridge$a is defined multiple times: /Volumes/MP SSD 1/MansaPlay/App Development/Numfeud/CleanAndroidProject/Temp/gradleOut/launcher/build/intermediates/external_file_lib_dex_archives/release/out/0_jetified-unity-classes.jar:classes.dex, /Volumes/MP SSD 1/MansaPlay/App Development/Numfeud/CleanAndroidProject/Temp/gradleOut/launcher/build/intermediates/external_file_lib_dex_archives/release/out/7_jetified-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: /Volumes/MP SSD 1/MansaPlay/App Development/Numfeud/CleanAndroidProject/Temp/gradleOut/launcher/build/intermediates/external_file_lib_dex_archives/release/out/0_jetified-unity-classes.jar:classes.dex, /Volumes/MP SSD 1/MansaPlay/App Development/Numfeud/CleanAndroidProject/Temp/gradleOut/launcher/build/intermediates/external_file_lib_dex_archives/release/out/7_jetified-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: /Volumes/MP SSD 1/MansaPlay/App Development/Numfeud/CleanAndroidProject/Temp/gradleOut/launcher/build/intermediates/external_file_lib_dex_archives/release/out/0_jetified-unity-classes.jar:classes.dex, Type bitter.jnibridge.JNIBridge$a is defined multiple times: /Volumes/MP SSD 1/MansaPlay/App Development/Numfeud/CleanAndroidProject/Temp/gradleOut/launcher/build/intermediates/external_file_lib_dex_archives/release/out/0_jetified-unity-classes.jar:classes.dex, /Volumes/MP SSD 1/MansaPlay/App Development/Numfeud/CleanAndroidProject/Temp/gradleOut/launcher/build/intermediates/external_file_lib_dex_archives/release/out/7_jetified-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:mergeDexRelease'.
    > 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: /Volumes/MP SSD 1/MansaPlay/App Development/Numfeud/CleanAndroidProject/Temp/gradleOut/launcher/build/intermediates/external_file_lib_dex_archives/release/out/0_jetified-unity-classes.jar:classes.dex, /Volumes/MP SSD 1/MansaPlay/App Development/Numfeud/CleanAndroidProject/Temp/gradleOut/launcher/build/intermediates/external_file_lib_dex_archives/release/out/7_jetified-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 5s
    ]
    stdout[

    > Configure project :launcher
    WARNING: The option 'android.enableR8' is deprecated and should not be used anymore.
    It will be removed in a future version of the Android Gradle plugin, and will no longer allow you to disable R8.

    > Task :launcher:preBuild UP-TO-DATE
    > Task :launcher:preReleaseBuild UP-TO-DATE
    > Task :unityLibrary:preBuild UP-TO-DATE
    > Task :unityLibrary:preReleaseBuild UP-TO-DATE
    > Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:preBuild UP-TO-DATE
    > Task :unityLibrary:packageReleaseRenderscript NO-SOURCE
    > Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:preReleaseBuild UP-TO-DATE
    > Task :launcher:generateReleaseBuildConfig UP-TO-DATE
    > Task :launcher:compileReleaseRenderscript NO-SOURCE
    > Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:compileReleaseAidl NO-SOURCE
    > Task :unityLibrary:compileReleaseAidl NO-SOURCE
    > Task :launcher:compileReleaseAidl NO-SOURCE
    > Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:packageReleaseRenderscript NO-SOURCE
    > Task :unityLibrary:generateReleaseBuildConfig UP-TO-DATE
    > Task :unityLibrary:compileReleaseRenderscript NO-SOURCE
    > Task :unityLibrary:generateReleaseResValues UP-TO-DATE
    > Task :unityLibrary:generateReleaseResources UP-TO-DATE
    > Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:compileReleaseRenderscript NO-SOURCE
    > Task :unityLibrary:packageReleaseResources UP-TO-DATE
    > Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:generateReleaseResValues
    > Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:generateReleaseResources
    > Task :unityLibrary:parseReleaseLocalResources UP-TO-DATE
    > Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:packageReleaseResources
    > Task :unityLibrary:processReleaseManifest
    > Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:parseReleaseLocalResources
    > Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:generateReleaseBuildConfig
    > Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:processReleaseManifest
    > Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:javaPreCompileRelease
    > Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:generateReleaseRFile
    > Task :unityLibrary:generateReleaseRFile
    > Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:compileReleaseJavaWithJavac
    > Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:bundleLibCompileRelease
    > Task :launcher:mainApkListPersistenceRelease UP-TO-DATE
    > Task :launcher:generateReleaseResValues UP-TO-DATE
    > Task :launcher:generateReleaseResources UP-TO-DATE
    > Task :unityLibrary:extractDeepLinksRelease UP-TO-DATE
    > Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:extractDeepLinksRelease
    > Task :unityLibrary:compileReleaseLibraryResources UP-TO-DATE
    > Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:compileReleaseLibraryResources
    > Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:prepareLintJarForPublish
    > Task :unityLibrary:javaPreCompileRelease
    > Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:bundleLibRuntimeRelease
    > Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:mergeReleaseShaders
    > Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:compileReleaseShaders
    > Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:generateReleaseAssets
    > Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:packageReleaseAssets
    > Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:processReleaseJavaRes NO-SOURCE
    > Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:bundleLibResRelease

    > Task :unityLibrary:compileReleaseJavaWithJavac

    > Task :unityLibrary:prepareLintJarForPublish UP-TO-DATE
    > Task :unityLibrary:bundleLibRuntimeRelease UP-TO-DATE
    > Task :unityLibrary:mergeReleaseShaders UP-TO-DATE
    > Task :unityLibrary:compileReleaseShaders UP-TO-DATE
    > Task :unityLibrary:generateReleaseAssets UP-TO-DATE
    > Task :unityLibrary:packageReleaseAssets
    > Task :unityLibrary:processReleaseJavaRes NO-SOURCE
    > Task :unityLibrary:bundleLibResRelease UP-TO-DATE
    > Task :unityLibrary:bundleLibCompileRelease
    > Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:mergeReleaseJniLibFolders
    > Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:mergeReleaseNativeLibs
    > Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:stripReleaseDebugSymbols
    > Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:copyReleaseJniLibsProjectOnly
    > Task :unityLibrary:mergeReleaseJniLibFolders
    > Task :unityLibrary:mergeReleaseNativeLibs
    > Task :unityLibrary:stripReleaseDebugSymbols
    > Task :launcher:createReleaseCompatibleScreenManifests UP-TO-DATE
    > Task :launcher:extractDeepLinksRelease UP-TO-DATE
    > Task :unityLibrary:copyReleaseJniLibsProjectOnly
    > Task :launcher:processReleaseManifest
    > Task :launcher:prepareLintJar UP-TO-DATE
    > Task :launcher:javaPreCompileRelease
    > Task :launcher:mergeReleaseResources
    > Task :launcher:processReleaseResources
    > Task :launcher:compileReleaseJavaWithJavac
    > Task :launcher:compileReleaseSources
    > Task :launcher:lintVitalRelease
    > Task :launcher:checkReleaseDuplicateClasses
    > Task :launcher:dexBuilderRelease
    > Task :launcher:mergeReleaseShaders UP-TO-DATE
    > Task :launcher:compileReleaseShaders UP-TO-DATE
    > Task :launcher:generateReleaseAssets UP-TO-DATE
    > Task :launcher:mergeReleaseAssets
    > Task :launcher:processReleaseJavaRes NO-SOURCE
    > Task :launcher:mergeReleaseJniLibFolders UP-TO-DATE
    > Task :launcher:desugarReleaseFileDependencies
    > Task :launcher:validateSigningRelease UP-TO-DATE
    > Task :launcher:mergeReleaseNativeLibs
    > Task :launcher:stripReleaseDebugSymbols
    > Task :launcher:mergeReleaseJavaResource
    > Task :launcher:multiDexListRelease

    > Task :launcher:mergeDexRelease FAILED
    67 actionable tasks: 46 executed, 21 up-to-date
    ]
    exit code: 1
    UnityEditor.Android.Command.WaitForProgramToRun (UnityEditor.Utils.Program p, UnityEditor.Android.Command+WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) (at <2c6e9a95f1dd4e06ad71afcd2684dcb7>:0)
    UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.Command+WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) (at <2c6e9a95f1dd4e06ad71afcd2684dcb7>:0)
    UnityEditor.Android.Command.Run (System.String command, System.String args, System.String workingdir, UnityEditor.Android.Command+WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) (at <2c6e9a95f1dd4e06ad71afcd2684dcb7>:0)
    UnityEditor.Android.AndroidJavaTools.RunJava (System.String args, System.String workingdir, System.Action`1[T] progress, System.String error) (at <2c6e9a95f1dd4e06ad71afcd2684dcb7>:0)
    UnityEditor.Android.GradleWrapper.Run (UnityEditor.Android.AndroidJavaTools javaTools, System.String workingdir, System.String task, System.Action`1[T] progress) (at <2c6e9a95f1dd4e06ad71afcd2684dcb7>:0)
    Rethrow as GradleInvokationException: Gradle build failed
    UnityEditor.Android.GradleWrapper.Run (UnityEditor.Android.AndroidJavaTools javaTools, System.String workingdir, System.String task, System.Action`1[T] progress) (at <2c6e9a95f1dd4e06ad71afcd2684dcb7>:0)
    UnityEditor.Android.PostProcessor.Tasks.BuildGradleProject.Execute (UnityEditor.Android.PostProcessor.PostProcessorContext context) (at <2c6e9a95f1dd4e06ad71afcd2684dcb7>:0)
    UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context) (at <2c6e9a95f1dd4e06ad71afcd2684dcb7>:0)
    Rethrow as BuildFailedException: Exception of type 'UnityEditor.Build.BuildFailedException' was thrown.
    UnityEditor.Android.PostProcessor.CancelPostProcess.AbortBuild (System.String title, System.String message, System.Exception ex) (at <2c6e9a95f1dd4e06ad71afcd2684dcb7>:0)
    UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context) (at <2c6e9a95f1dd4e06ad71afcd2684dcb7>:0)
    UnityEditor.Android.PostProcessAndroidPlayer.PostProcess (UnityEditor.BuildTarget target, System.String stagingAreaData, System.String stagingArea, System.String playerPackage, System.String installPath, System.String companyName, System.String productName, UnityEditor.BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry, UnityEditor.Build.Reporting.BuildReport report) (at <2c6e9a95f1dd4e06ad71afcd2684dcb7>:0)
    <message truncated>


    I have created a Custom Launcher Gradle Template like this:

    apply plugin: 'com.android.application'

    dependencies {
    implementation project(':unityLibrary')
    implementation 'androidx.multidex:multidex:2.0.1'
    }

    android {
    compileSdkVersion **APIVERSION**
    buildToolsVersion '**BUILDTOOLS**'

    compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
    }

    defaultConfig {
    minSdkVersion **MINSDKVERSION**
    targetSdkVersion **TARGETSDKVERSION**
    applicationId '**APPLICATIONID**'
    multiDexEnabled true
    ndk {
    abiFilters **ABIFILTERS**
    }
    versionCode **VERSIONCODE**
    versionName '**VERSIONNAME**'
    }

    aaptOptions {
    noCompress = ['.ress', '.resource', '.obb'] + unityStreamingAssets.tokenize(', ')
    ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~"
    }**SIGN**

    lintOptions {
    abortOnError false
    }

    buildTypes {
    debug {
    minifyEnabled **MINIFY_DEBUG**
    proguardFiles getDefaultProguardFile('proguard-android.txt')**SIGNCONFIG**
    jniDebuggable true
    }
    release {
    minifyEnabled **MINIFY_RELEASE**
    proguardFiles getDefaultProguardFile('proguard-android.txt')**SIGNCONFIG**
    }
    }**PACKAGING_OPTIONS****SPLITS**
    **BUILT_APK_LOCATION**
    bundle {
    language {
    enableSplit = false
    }
    density {
    enableSplit = false
    }
    abi {
    enableSplit = true
    }
    }
    }**SPLITS_VERSION_CODE****LAUNCHER_SOURCE_BUILD_SETUP**



    ... and a Custom Gradle Properties Template like this:

    org.gradle.jvmargs=-Xmx**JVM_HEAP_SIZE**M
    org.gradle.parallel=true
    android.enableR8=**MINIFY_WITH_R_EIGHT**
    unityStreamingAssets=.unity3d**STREAMING_ASSETS**
    # Android Resolver Properties Start
    android.useAndroidX=true
    android.enableJetifier=true
    # Android Resolver Properties End
    **ADDITIONAL_PROPERTIES**


    I am using Unity 2020.3.2f1 on a iMac with Big Sur installed.

    Hope someone can guide me or even better tell me what I am doing wrong or missing... I am going crazy :-/ :)

    Thanks in advance, Jesper
     
    vivek_sahajanand and DMorock like this.
  2. DMorock

    DMorock

    Joined:
    Mar 26, 2015
    Posts:
    9
    Have the same problem.
    Is any suggestion there?
     
    vivek_sahajanand likes this.
  3. vivek_sahajanand

    vivek_sahajanand

    Joined:
    Mar 26, 2021
    Posts:
    1
    Same problem here
     
    DMorock likes this.
  4. DMorock

    DMorock

    Joined:
    Mar 26, 2015
    Posts:
    9
    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 o_O
    Debugging becomes painful for me.

    Can someone suggest something smarter, please?
     
    vivek_sahajanand likes this.