Search Unity

Gradle build fails. Multiple dex files define Lcom/google/android/gms/internal/zzcqn

Discussion in 'Android' started by HeaDiii, Mar 24, 2018.

  1. HeaDiii

    HeaDiii

    Joined:
    May 18, 2015
    Posts:
    61
    Hello there,

    I am currently struggling to get my android apk to build. When I build I get an error that says:

    Code (CSharp):
    1. Build failure
    2.  
    3. com.android.build.api.transform.TransformException:
    4. com.android.ide.common.process.ProcessException:
    5. java.util.concurrent.ExecutionException:
    6. com.android.dex.DexException:
    7. Multiple dex files define Lcom/google/android/gms/drive/CreateFileActivityBuilder;
    8. See the Console for details.
    In the console I've got the following:

    Code (CSharp):
    1. CommandInvokationFailure: Gradle build failed.
    2. /Library/Java/JavaVirtualMachines/jdk1.8.0_152.jdk/Contents/Home/bin/java -classpath "/Applications/Unity/PlaybackEngines/AndroidPlayer/Tools/gradle/lib/gradle-launcher-4.0.1.jar" org.gradle.launcher.GradleMain "-Dorg.gradle.jvmargs=-Xmx2048m" "assembleRelease"
    3.  
    4. stderr[
    5.  
    6. FAILURE: Build failed with an exception.
    7.  
    8. * What went wrong:
    9. Execution failed for task ':transformClassesWithDexForRelease'

    The console says, that the step ':transformClassesWithDexForRelease' fails.
    I've been searching around the web a bit but couldn't find a solution. Some guys say that this error happens if I got more than one version of some .aar files inside my project, but I checked it and couldn't find anything suspicious.

    Can someone help me? I'm currently using Unity 2017.3.0f3 on MacOS.
    Inside my project I've got the most recent version of GooglePlay Services (0.9.50) and some version of Vungle that doesn't seem to cause any troubles at all.
     
  2. DyrdaOrg

    DyrdaOrg

    Joined:
    Aug 20, 2012
    Posts:
    9
    Same here with Unity 2017.3.1f1 and Win10
    I'm using same GooglePlay Services (0.9.50) and Chartboost 7.0.2


    CommandInvokationFailure: Gradle build failed.
    C:/Program Files/Java/jdk1.8.0_162\bin\java.exe -classpath "C:\Program Files\Unity2017-3-1f1\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib\gradle-launcher-4.0.1.jar" org.gradle.launcher.GradleMain "-Dorg.gradle.jvmargs=-Xmx2048m" "assembleRelease"

    stderr[

    FAILURE: Build failed with an exception.

    * What went wrong:
    Execution failed for task ':transformClassesWithDexForRelease'.
    > com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/common/api/zze;

    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

    BUILD FAILED in 18s
    ]
    stdout[
    The setTestClassesDir(File) method has been deprecated and is scheduled to be removed in Gradle 5.0. Please use the setTestClassesDirs(FileCollection) method instead.
    The getTestClassesDir() method has been deprecated and is scheduled to be removed in Gradle 5.0. Please use the getTestClassesDirs() method instead.
    The ConfigurableReport.setDestination(Object) method has been deprecated and is scheduled to be removed in Gradle 5.0. Please use the method ConfigurableReport.setDestination(File) instead.
    :preBuild UP-TO-DATE
    :preReleaseBuild UP-TO-DATE
    :checkReleaseManifest
    :preDebugBuild UP-TO-DATE
    :prepareComAndroidSupportSupportCompat2520Library
    :prepareComAndroidSupportSupportCoreUi2520Library
    :prepareComAndroidSupportSupportCoreUtils2520Library
    :prepareComAndroidSupportSupportFragment2520Library
    :prepareComAndroidSupportSupportMediaCompat2520Library
    :prepareComAndroidSupportSupportV42520Library
    :prepareComGoogleAndroidGmsPlayServicesAuth1162Library
    :prepareComGoogleAndroidGmsPlayServicesAuthApiPhone1162Library
    :prepareComGoogleAndroidGmsPlayServicesAuthBase1162Library
    :prepareComGoogleAndroidGmsPlayServicesBase1162Library
    :prepareComGoogleAndroidGmsPlayServicesBasement1162Library
    :prepareComGoogleAndroidGmsPlayServicesDrive1162Library
    :prepareComGoogleAndroidGmsPlayServicesGames1162Library
    :prepareComGoogleAndroidGmsPlayServicesNearby1162Library
    :prepareComGoogleAndroidGmsPlayServicesTasks1162Library
    :preparePlayServicesBasement900Library
    :ChartboostSDK:preBuild UP-TO-DATE
    :ChartboostSDK:preReleaseBuild UP-TO-DATE
    :ChartboostSDK:checkReleaseManifest
    :ChartboostSDK:prepareReleaseDependencies
    :ChartboostSDK:compileReleaseAidl
    :ChartboostSDK:compileReleaseNdk NO-SOURCE
    :ChartboostSDK:compileLint
    :ChartboostSDK:copyReleaseLint NO-SOURCE
    :ChartboostSDK:mergeReleaseShaders
    :ChartboostSDK:compileReleaseShaders
    :ChartboostSDK:generateReleaseAssets
    :ChartboostSDK:mergeReleaseAssets
    :ChartboostSDK:mergeReleaseProguardFiles UP-TO-DATE
    :ChartboostSDK:packageReleaseRenderscript NO-SOURCE
    :ChartboostSDK:compileReleaseRenderscript
    :ChartboostSDK:generateReleaseResValues
    :ChartboostSDK:generateReleaseResources
    :ChartboostSDK:packageReleaseResources
    :ChartboostSDK:processReleaseManifest
    :ChartboostSDK:generateReleaseBuildConfig
    :ChartboostSDK:processReleaseResources
    :ChartboostSDK:generateReleaseSources
    :ChartboostSDK:incrementalReleaseJavaCompilationSafeguard
    :ChartboostSDK:javaPreCompileRelease
    :ChartboostSDK:compileReleaseJavaWithJavac
    :ChartboostSDK:processReleaseJavaRes NO-SOURCE
    :ChartboostSDK:transformResourcesWithMergeJavaResForRelease
    :ChartboostSDK:transformClassesAndResourcesWithSyncLibJarsForRelease
    :ChartboostSDK:mergeReleaseJniLibFolders
    :ChartboostSDK:transformNativeLibsWithMergeJniLibsForRelease
    :ChartboostSDK:transformNativeLibsWithStripDebugSymbolForRelease
    :ChartboostSDK:transformNativeLibsWithSyncJniLibsForRelease
    :ChartboostSDK:bundleRelease
    :GooglePlayGamesManifest.plugin:preBuild UP-TO-DATE
    :GooglePlayGamesManifest.plugin:preReleaseBuild UP-TO-DATE
    :GooglePlayGamesManifest.plugin:checkReleaseManifest
    :GooglePlayGamesManifest.plugin:prepareReleaseDependencies
    :GooglePlayGamesManifest.plugin:compileReleaseAidl
    :GooglePlayGamesManifest.plugin:compileReleaseNdk NO-SOURCE
    :GooglePlayGamesManifest.plugin:compileLint
    :GooglePlayGamesManifest.plugin:copyReleaseLint NO-SOURCE
    :GooglePlayGamesManifest.plugin:mergeReleaseShaders
    :GooglePlayGamesManifest.plugin:compileReleaseShaders
    :GooglePlayGamesManifest.plugin:generateReleaseAssets
    :GooglePlayGamesManifest.plugin:mergeReleaseAssets
    :GooglePlayGamesManifest.plugin:mergeReleaseProguardFiles UP-TO-DATE
    :GooglePlayGamesManifest.plugin:packageReleaseRenderscript NO-SOURCE
    :GooglePlayGamesManifest.plugin:compileReleaseRenderscript
    :GooglePlayGamesManifest.plugin:generateReleaseResValues
    :GooglePlayGamesManifest.plugin:generateReleaseResources
    :GooglePlayGamesManifest.plugin:packageReleaseResources
    :GooglePlayGamesManifest.plugin:processReleaseManifest
    :GooglePlayGamesManifest.plugin:generateReleaseBuildConfig
    :GooglePlayGamesManifest.plugin:processReleaseResources
    :GooglePlayGamesManifest.plugin:generateReleaseSources
    :GooglePlayGamesManifest.plugin:incrementalReleaseJavaCompilationSafeguard
    :GooglePlayGamesManifest.plugin:javaPreCompileRelease
    :GooglePlayGamesManifest.plugin:compileReleaseJavaWithJavac
    :GooglePlayGamesManifest.plugin:processReleaseJavaRes NO-SOURCE
    :GooglePlayGamesManifest.plugin:transformResourcesWithMergeJavaResForRelease
    :GooglePlayGamesManifest.plugin:transformClassesAndResourcesWithSyncLibJarsForRelease
    :GooglePlayGamesManifest.plugin:mergeReleaseJniLibFolders
    :GooglePlayGamesManifest.plugin:transformNativeLibsWithMergeJniLibsForRelease
    :GooglePlayGamesManifest.plugin:transformNativeLibsWithStripDebugSymbolForRelease
    :GooglePlayGamesManifest.plugin:transformNativeLibsWithSyncJniLibsForRelease
    :GooglePlayGamesManifest.plugin:bundleRelease
    :com.google.android.gms.play-services-auth-api-phone-license-11.6.2:preBuild UP-TO-DATE
    :com.google.android.gms.play-services-auth-api-phone-license-11.6.2:preReleaseBuild UP-TO-DATE
    :com.google.android.gms.play-services-auth-api-phone-license-11.6.2:checkReleaseManifest
    :com.google.android.gms.play-services-auth-api-phone-license-11.6.2:prepareReleaseDependencies
    :com.google.android.gms.play-services-auth-api-phone-license-11.6.2:compileReleaseAidl
    :com.google.android.gms.play-services-auth-api-phone-license-11.6.2:compileReleaseNdk NO-SOURCE
    :com.google.android.gms.play-services-auth-api-phone-license-11.6.2:compileLint
    :com.google.android.gms.play-services-auth-api-phone-license-11.6.2:copyReleaseLint NO-SOURCE
    :com.google.android.gms.play-services-auth-api-phone-license-11.6.2:mergeReleaseShaders
    :com.google.android.gms.play-services-auth-api-phone-license-11.6.2:compileReleaseShaders
    :com.google.android.gms.play-services-auth-api-phone-license-11.6.2:generateReleaseAssets
    :com.google.android.gms.play-services-auth-api-phone-license-11.6.2:mergeReleaseAssets
    :com.google.android.gms.play-services-auth-api-phone-license-11.6.2:mergeReleaseProguardFiles UP-TO-DATE
    :com.google.android.gms.play-services-auth-api-phone-license-11.6.2:packageReleaseRenderscript NO-SOURCE
    :com.google.android.gms.play-services-auth-api-phone-license-11.6.2:compileReleaseRenderscript
    :com.google.android.gms.play-services-auth-api-phone-license-11.6.2:generateReleaseResValues
    :com.google.android.gms.play-services-auth-api-phone-license-11.6.2:generateReleaseResources
    :com.google.android.gms.play-services-auth-api-phone-license-11.6.2:packageReleaseResources
    :com.google.android.gms.play-services-auth-api-phone-license-11.6.2:processReleaseManifest
    :com.google.android.gms.play-services-auth-api-phone-license-11.6.2:generateReleaseBuildConfig
    :com.google.android.gms.play-services-auth-api-phone-license-11.6.2:processReleaseResources
    :com.google.android.gms.play-services-auth-api-phone-license-11.6.2:generateReleaseSources
    :com.google.android.gms.play-services-auth-api-phone-license-11.6.2:incrementalReleaseJavaCompilationSafeguard
    :com.google.android.gms.play-services-auth-api-phone-license-11.6.2:javaPreCompileRelease
    :com.google.android.gms.play-services-auth-api-phone-license-11.6.2:compileReleaseJavaWithJavac
    :com.google.android.gms.play-services-auth-api-phone-license-11.6.2:processReleaseJavaRes NO-SOURCE
    :com.google.android.gms.play-services-auth-api-phone-license-11.6.2:transformResourcesWithMergeJavaResForRelease
    :com.google.android.gms.play-services-auth-api-phone-license-11.6.2:transformClassesAndResourcesWithSyncLibJarsForRelease
    :com.google.android.gms.play-services-auth-api-phone-license-11.6.2:mergeReleaseJniLibFolders
    :com.google.android.gms.play-services-auth-api-phone-license-11.6.2:transformNativeLibsWithMergeJniLibsForRelease
    :com.google.android.gms.play-services-auth-api-phone-license-11.6.2:transformNativeLibsWithStripDebugSymbolForRelease
    :com.google.android.gms.play-services-auth-api-phone-license-11.6.2:transformNativeLibsWithSyncJniLibsForRelease
    :com.google.android.gms.play-services-auth-api-phone-license-11.6.2:bundleRelease
    :com.google.android.gms.play-services-auth-base-license-11.6.2:preBuild UP-TO-DATE
    :com.google.android.gms.play-services-auth-base-license-11.6.2:preReleaseBuild UP-TO-DATE
    :com.google.android.gms.play-services-auth-base-license-11.6.2:checkReleaseManifest
    :com.google.android.gms.play-services-auth-base-license-11.6.2:prepareReleaseDependencies
    :com.google.android.gms.play-services-auth-base-license-11.6.2:compileReleaseAidl
    :com.google.android.gms.play-services-auth-base-license-11.6.2:compileReleaseNdk NO-SOURCE
    :com.google.android.gms.play-services-auth-base-license-11.6.2:compileLint
    :com.google.android.gms.play-services-auth-base-license-11.6.2:copyReleaseLint NO-SOURCE
    :com.google.android.gms.play-services-auth-base-license-11.6.2:mergeReleaseShaders
    :com.google.android.gms.play-services-auth-base-license-11.6.2:compileReleaseShaders
    :com.google.android.gms.play-services-auth-base-license-11.6.2:generateReleaseAssets
    :com.google.android.gms.play-services-auth-base-license-11.6.2:mergeReleaseAssets
    :com.google.android.gms.play-services-auth-base-license-11.6.2:mergeReleaseProguardFiles UP-TO-DATE
    :com.google.android.gms.play-services-auth-base-license-11.6.2:packageReleaseRenderscript NO-SOURCE
    :com.google.android.gms.play-services-auth-base-license-11.6.2:compileReleaseRenderscript
    :com.google.android.gms.play-services-auth-base-license-11.6.2:generateReleaseResValues
    :com.google.android.gms.play-services-auth-base-license-11.6.2:generateReleaseResources
    :com.google.android.gms.play-services-auth-base-license-11.6.2:packageReleaseResources
    :com.google.android.gms.play-services-auth-base-license-11.6.2:processReleaseManifest
    :com.google.android.gms.play-services-auth-base-license-11.6.2:generateReleaseBuildConfig
    :com.google.android.gms.play-services-auth-base-license-11.6.2:processReleaseResources
    :com.google.android.gms.play-services-auth-base-license-11.6.2:generateReleaseSources
    :com.google.android.gms.play-services-auth-base-license-11.6.2:incrementalReleaseJavaCompilationSafeguard
    :com.google.android.gms.play-services-auth-base-license-11.6.2:javaPreCompileRelease
    :com.google.android.gms.play-services-auth-base-license-11.6.2:compileReleaseJavaWithJavac
    :com.google.android.gms.play-services-auth-base-license-11.6.2:processReleaseJavaRes NO-SOURCE
    :com.google.android.gms.play-services-auth-base-license-11.6.2:transformResourcesWithMergeJavaResForRelease
    :com.google.android.gms.play-services-auth-base-license-11.6.2:transformClassesAndResourcesWithSyncLibJarsForRelease
    :com.google.android.gms.play-services-auth-base-license-11.6.2:mergeReleaseJniLibFolders
    :com.google.android.gms.play-services-auth-base-license-11.6.2:transformNativeLibsWithMergeJniLibsForRelease
    :com.google.android.gms.play-services-auth-base-license-11.6.2:transformNativeLibsWithStripDebugSymbolForRelease
    :com.google.android.gms.play-services-auth-base-license-11.6.2:transformNativeLibsWithSyncJniLibsForRelease
    :com.google.android.gms.play-services-auth-base-license-11.6.2:bundleRelease
    :com.google.android.gms.play-services-base-license-11.6.2:preBuild UP-TO-DATE
    :com.google.android.gms.play-services-base-license-11.6.2:preReleaseBuild UP-TO-DATE
    :com.google.android.gms.play-services-base-license-11.6.2:checkReleaseManifest
    :com.google.android.gms.play-services-base-license-11.6.2:prepareReleaseDependencies
    :com.google.android.gms.play-services-base-license-11.6.2:compileReleaseAidl
    :com.google.android.gms.play-services-base-license-11.6.2:compileReleaseNdk NO-SOURCE
    :com.google.android.gms.play-services-base-license-11.6.2:compileLint
    :com.google.android.gms.play-services-base-license-11.6.2:copyReleaseLint NO-SOURCE
    :com.google.android.gms.play-services-base-license-11.6.2:mergeReleaseShaders
    :com.google.android.gms.play-services-base-license-11.6.2:compileReleaseShaders
    :com.google.android.gms.play-services-base-license-11.6.2:generateReleaseAssets
    :com.google.android.gms.play-services-base-license-11.6.2:mergeReleaseAssets
    :com.google.android.gms.play-services-base-license-11.6.2:mergeReleaseProguardFiles UP-TO-DATE
    :com.google.android.gms.play-services-base-license-11.6.2:packageReleaseRenderscript NO-SOURCE
    :com.google.android.gms.play-services-base-license-11.6.2:compileReleaseRenderscript
    :com.google.android.gms.play-services-base-license-11.6.2:generateReleaseResValues
    :com.google.android.gms.play-services-base-license-11.6.2:generateReleaseResources
    :com.google.android.gms.play-services-base-license-11.6.2:packageReleaseResources
    :com.google.android.gms.play-services-base-license-11.6.2:processReleaseManifest
    :com.google.android.gms.play-services-base-license-11.6.2:generateReleaseBuildConfig
    :com.google.android.gms.play-services-base-license-11.6.2:processReleaseResources
    :com.google.android.gms.play-services-base-license-11.6.2:generateReleaseSources
    :com.google.android.gms.play-services-base-license-11.6.2:incrementalReleaseJavaCompilationSafeguard
    :com.google.android.gms.play-services-base-license-11.6.2:javaPreCompileRelease
    :com.google.android.gms.play-services-base-license-11.6.2:compileReleaseJavaWithJavac
    :com.google.android.gms.play-services-base-license-11.6.2:processReleaseJavaRes NO-SOURCE
    :com.google.android.gms.play-services-base-license-11.6.2:transformResourcesWithMergeJavaResForRelease
    :com.google.android.gms.play-services-base-license-11.6.2:transformClassesAndResourcesWithSyncLibJarsForRelease
    :com.google.android.gms.play-services-base-license-11.6.2:mergeReleaseJniLibFolders
    :com.google.android.gms.play-services-base-license-11.6.2:transformNativeLibsWithMergeJniLibsForRelease
    :com.google.android.gms.play-services-base-license-11.6.2:transformNativeLibsWithStripDebugSymbolForRelease
    :com.google.android.gms.play-services-base-license-11.6.2:transformNativeLibsWithSyncJniLibsForRelease
    :com.google.android.gms.play-services-base-license-11.6.2:bundleRelease
    :com.google.android.gms.play-services-basement-license-11.6.2:preBuild UP-TO-DATE
    :com.google.android.gms.play-services-basement-license-11.6.2:preReleaseBuild UP-TO-DATE
    :com.google.android.gms.play-services-basement-license-11.6.2:checkReleaseManifest
    :com.google.android.gms.play-services-basement-license-11.6.2:prepareReleaseDependencies
    :com.google.android.gms.play-services-basement-license-11.6.2:compileReleaseAidl
    :com.google.android.gms.play-services-basement-license-11.6.2:compileReleaseNdk NO-SOURCE
    :com.google.android.gms.play-services-basement-license-11.6.2:compileLint
    :com.google.android.gms.play-services-basement-license-11.6.2:copyReleaseLint NO-SOURCE
    :com.google.android.gms.play-services-basement-license-11.6.2:mergeReleaseShaders
    :com.google.android.gms.play-services-basement-license-11.6.2:compileReleaseShaders
    :com.google.android.gms.play-services-basement-license-11.6.2:generateReleaseAssets
    :com.google.android.gms.play-services-basement-license-11.6.2:mergeReleaseAssets
    :com.google.android.gms.play-services-basement-license-11.6.2:mergeReleaseProguardFiles UP-TO-DATE
    :com.google.android.gms.play-services-basement-license-11.6.2:packageReleaseRenderscript NO-SOURCE
    :com.google.android.gms.play-services-basement-license-11.6.2:compileReleaseRenderscript
    :com.google.android.gms.play-services-basement-license-11.6.2:generateReleaseResValues
    :com.google.android.gms.play-services-basement-license-11.6.2:generateReleaseResources
    :com.google.android.gms.play-services-basement<message truncated>

    Any help is much appreciated since I'm googling about this for almost 3 days. I tried forcing resolver, reimporting packages, downgrading Android sdk tools, upgrading Android sdk tools, and right now I'm just clueless.
     
    keeves_test14 likes this.
  3. DyrdaOrg

    DyrdaOrg

    Joined:
    Aug 20, 2012
    Posts:
    9
    I managed to somehow get around this. It's not ideal solution, but after trying to set multiDex to true, changing gradle version, etc. I found some posts mentioning that this approach is not recommended.

    So I reverted to Internal from gradle and I've got different error:

    CommandInvokationFailure: Failed to re-package resources.
    (...)
    Temp\StagingArea\android-libraries\com.google.android.gms.play-services-base-11.6.2\res\values\values.xml:33: error: Attribute "imageAspectRatioAdjust" already defined with incompatible format.
    Temp\StagingArea\android-libraries\play-services-basement-9.0.0\res\values\values.xml:3: Original attribute defined here.

    play-services-basement-9.0.0.arr - I deleted that file from Plugin/Android folder and build was successful - hope this will help someone :)
     
    KaranStudio likes this.
  4. HeaDiii

    HeaDiii

    Joined:
    May 18, 2015
    Posts:
    61
    Somehow I managed to "solve" my issue as well.

    Instead of switching to the internal build system, I wanted to stay on gradle. What I did was deleting my whole Plugins folder and reloading all the Plugins afterwards. (Vungle, GooglePlayServices and some FacebookStuff)

    Even though everything works now and compiles correctly, it doesn't seem like I chose the right way. I just wiped everything clean and put everything in place again, but what I'm missing is the knowledge of what actually wasn't going well. A friend keeps telling me that approaches like these are what the old barbarians did to fix their code... The next time I have this problem (and I feel like this time is definitely coming), I'm not going to know what the correct approach to fix this will be and I'm going to have to go through the same procedure again.
     
    curio_logix likes this.
  5. softpulsedev13

    softpulsedev13

    Joined:
    Oct 11, 2018
    Posts:
    2
    Same here with Unity 2018.2.11 and Win7
    I'm using same GooglePlay Services (0.9.50) and admob and unityIAP.


    on making android build got this error

    CommandInvokationFailure: Gradle build failed.
    C:\Program Files\Java\jdk1.8.0_192\bin\java.exe -classpath "C:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib\gradle-launcher-4.2.1.jar" org.gradle.launcher.GradleMain "-Dorg.gradle.jvmargs=-Xmx2048m" "assembleRelease"

    stderr[

    FAILURE: Build failed with an exception.

    * What went wrong:
    Execution failed for task ':transformDexWithDexForRelease'.
    > com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/ads/internal/ClientApi;
     
  6. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,963
    This means you have duplicate library classes. Post a screenshot of Assets/Plugins/Android folder.
     
    lepijohnnynl and softpulsedev13 like this.
  7. softpulsedev13

    softpulsedev13

    Joined:
    Oct 11, 2018
    Posts:
    2
  8. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,963
    Great!
    Glad you got it fixed!
     
    softpulsedev13 likes this.