Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Voting for the Unity Awards are OPEN! We’re looking to celebrate creators across games, industry, film, and many more categories. Cast your vote now for all categories
    Dismiss Notice
  3. Dismiss Notice

Gradle build error

Discussion in 'Android' started by Seraphim-Whiteless, Jan 29, 2018.

  1. Seraphim-Whiteless

    Seraphim-Whiteless

    Joined:
    Jun 23, 2014
    Posts:
    197
    Hi everyone!
    Having strange error while build project.
    In one of four computers. Three others comps compile it fine. And all four computers compile our another projects fine. Only one project. Only one computer have error. Can't find why.
    Soft are similar

    Unity3d 5.6.5 x64
    Win10 x64
    Java 8u91



    CommandInvokationFailure: Gradle build failed.
    C:/Program Files/Java/jdk1.8.0_91\bin\java.exe -classpath "D:\Soft\Unity 5.6.5\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib\gradle-launcher-2.14.jar" org.gradle.launcher.GradleMain "assembleRelease"

    stderr[
    Dex: Error converting bytecode to dex:
    Cause: Dex cannot parse version 52 byte code.
    This is caused by library dependencies that have been compiled using Java 8 or above.
    If you are using the 'java' gradle plugin in a library submodule add
    targetCompatibility = '1.7'
    sourceCompatibility = '1.7'
    to that submodule's build.gradle file.
    UNEXPECTED TOP-LEVEL EXCEPTION:
    java.lang.RuntimeException: Exception parsing classes
    at com.android.dx.command.dexer.Main.processClass(Main.java:761)
    at com.android.dx.command.dexer.Main.processFileBytes(Main.java:727)
    at com.android.dx.command.dexer.Main.access$1200(Main.java:87)
    at com.android.dx.command.dexer.Main$FileBytesConsumer.processFileBytes(Main.java:1655)
    at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)
    at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)
    at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
    at com.android.dx.command.dexer.Main.processOne(Main.java:681)
    at com.android.dx.command.dexer.Main.processAllFiles(Main.java:578)
    at com.android.dx.command.dexer.Main.runMonoDex(Main.java:315)
    at com.android.dx.command.dexer.Main.run(Main.java:286)
    at com.android.builder.internal.compiler.DexWrapper.run(DexWrapper.java:52)
    at com.android.builder.core.AndroidBuilder$2.call(AndroidBuilder.java:1511)
    at com.android.builder.core.AndroidBuilder$2.call(AndroidBuilder.java:1507)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
    Caused by: com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000)
    at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:472)
    at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
    at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
    at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
    at com.android.dx.command.dexer.Main.parseClass(Main.java:773)
    at com.android.dx.command.dexer.Main.access$1600(Main.java:87)
    at com.android.dx.command.dexer.Main$ClassParserTask.call(Main.java:1694)
    at com.android.dx.command.dexer.Main.processClass(Main.java:758)
    ... 17 more

    1 error; aborting

    FAILURE: Build failed with an exception.

    * What went wrong:
    Execution failed for task ':transformClassesWithDexForRelease'.
    > com.android.build.api.transform.TransformException: java.lang.RuntimeException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: Return code 1 for dex process

    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
    ]
    stdout[
    Incremental java compilation is an incubating feature.
    :preBuild UP-TO-DATE
    :preReleaseBuild UP-TO-DATE
    :checkReleaseManifest
    :preDebugBuild UP-TO-DATE
    :Firebase:preBuild UP-TO-DATE
    :Firebase:preReleaseBuild UP-TO-DATE
    :Firebase:compileReleaseNdk UP-TO-DATE
    :Firebase:compileLint
    :Firebase:copyReleaseLint UP-TO-DATE
    :Firebase:mergeReleaseProguardFiles
    :Firebase:packageReleaseRenderscript UP-TO-DATE
    :Firebase:checkReleaseManifest
    :Firebase:prepareReleaseDependencies
    :Firebase:compileReleaseRenderscript
    :Firebase:generateReleaseResValues
    :Firebase:generateReleaseResources
    :Firebase:packageReleaseResources
    :Firebase:compileReleaseAidl
    :Firebase:generateReleaseBuildConfig
    :Firebase:mergeReleaseShaders
    :Firebase:compileReleaseShaders
    :Firebase:generateReleaseAssets
    :Firebase:mergeReleaseAssets
    :Firebase:processReleaseManifest
    :Firebase:processReleaseResources
    :Firebase:generateReleaseSources
    :Firebase:incrementalReleaseJavaCompilationSafeguard
    :Firebase:compileReleaseJavaWithJavac
    :Firebase:processReleaseJavaRes UP-TO-DATE
    :Firebase:transformResourcesWithMergeJavaResForRelease
    :Firebase:transformClassesAndResourcesWithSyncLibJarsForRelease
    :Firebase:mergeReleaseJniLibFolders
    :Firebase:transformNative_libsWithMergeJniLibsForRelease
    :Firebase:transformNative_libsWithSyncJniLibsForRelease
    :Firebase:bundleRelease
    :unity-android-resources:preBuild UP-TO-DATE
    :unity-android-resources:preReleaseBuild UP-TO-DATE
    :unity-android-resources:compileReleaseNdk UP-TO-DATE
    :unity-android-resources:compileLint
    :unity-android-resources:copyReleaseLint UP-TO-DATE
    :unity-android-resources:mergeReleaseProguardFiles
    :unity-android-resources:packageReleaseRenderscript UP-TO-DATE
    :unity-android-resources:checkReleaseManifest
    :unity-android-resources:prepareReleaseDependencies
    :unity-android-resources:compileReleaseRenderscript
    :unity-android-resources:generateReleaseResValues
    :unity-android-resources:generateReleaseResources
    :unity-android-resources:packageReleaseResources
    :unity-android-resources:compileReleaseAidl
    :unity-android-resources:generateReleaseBuildConfig
    :unity-android-resources:mergeReleaseShaders
    :unity-android-resources:compileReleaseShaders
    :unity-android-resources:generateReleaseAssets
    :unity-android-resources:mergeReleaseAssets
    :unity-android-resources:processReleaseManifest
    :unity-android-resources:processReleaseResources
    :unity-android-resources:generateReleaseSources
    :unity-android-resources:incrementalReleaseJavaCompilationSafeguard
    :unity-android-resources:compileReleaseJavaWithJavac
    :unity-android-resources:processReleaseJavaRes UP-TO-DATE
    :unity-android-resources:transformResourcesWithMergeJavaResForRelease
    :unity-android-resources:transformClassesAndResourcesWithSyncLibJarsForRelease
    :unity-android-resources:mergeReleaseJniLibFolders
    :unity-android-resources:transformNative_libsWithMergeJniLibsForRelease
    :unity-android-resources:transformNative_libsWithSyncJniLibsForRelease
    :unity-android-resources:bundleRelease
    :prepareAnimatedVectorDrawable2340Library
    :prepareAppcompatV72340Library
    :prepareCardviewV72340Library
    :prepareCommonLibrary
    :prepareCustomtabs2340Library
    :prepareFacebookAndroidSdk4170Library
    :prepareFacebookAndroidWrapper794Library
    :prepareFirebaseAnalytics1180Library
    :prepareFirebaseAnalyticsImpl1180Library
    :prepareFirebaseAnalyticsImplLicense1180Library
    :prepareFirebaseAnalyticsLicense1180Library
    :prepareFirebaseAnalyticsUnity440Library
    :prepareFirebaseAppUnity440Library
    :prepareFirebaseCommon1180Library
    :prepareFirebaseCommonLicense1180Library
    :prepareFirebaseCore1180Library
    :prepareFirebaseIid1180Library
    :prepareFirebaseIidLicense1180Library
    :prepareFirebaseMessaging1180Library
    :prepareFirebaseMessagingLicense1180Library
    :prepareFirebaseMessagingUnity440Library
    :prepareGoogleAIDLLibrary
    :prepareGooglePlayLibrary
    :prepareGradleOutFirebaseUnspecifiedLibrary
    :prepareGradleOutUnityAndroidResourcesUnspecifiedLibrary
    :preparePlayServicesBase1180Library
    :preparePlayServicesBaseLicense1180Library
    :preparePlayServicesBasement1180Library
    :preparePlayServicesBasementLicense1180Library
    :preparePlayServicesTasks1180Library
    :preparePlayServicesTasksLicense1180Library
    :prepareSupportCompat2520Library
    :prepareSupportCoreUi2520Library
    :prepareSupportCoreUtils2520Library
    :prepareSupportFragment2520Library
    :prepareSupportMediaCompat2520Library
    :prepareSupportV42520Library
    :prepareSupportVectorDrawable2340Library
    :prepareReleaseDependencies
    :compileReleaseAidl
    :compileReleaseRenderscript
    :generateReleaseBuildConfig
    :mergeReleaseShaders
    :compileReleaseShaders
    :generateReleaseAssets
    :mergeReleaseAssets
    :generateReleaseResValues
    :generateReleaseResources
    :mergeReleaseResources
    :processReleaseManifest
    D:\Work\Unity\project\Temp\gradleOut\src\main\AndroidManifest.xml:49:3-140 Warning:
    uses-permission#android.permission.READ_PHONE_STATE was tagged at AndroidManifest.xml:49 to remove other declarations but no other declaration present
    D:\Work\Unity\project\Temp\gradleOut\src\main\AndroidManifest.xml:50:3-146 Warning:
    uses-permission#android.permission.WRITE_EXTERNAL_STORAGE was tagged at AndroidManifest.xml:50 to remove other declarations but no other declaration present
    D:\Work\Unity\project\Temp\gradleOut\src\main\AndroidManifest.xml:51:3-145 Warning:
    uses-permission#android.permission.READ_EXTERNAL_STORAGE was tagged at AndroidManifest.xml:51 to remove other declarations but no other declaration present
    :processReleaseResources
    :generateReleaseSources
    :incrementalReleaseJavaCompilationSafeguard
    :compileReleaseJavaWithJavac
    :compileReleaseNdk UP-TO-DATE
    :compileReleaseSources
    :lintVitalRelease
    :prePackageMarkerForRelease
    :transformClassesWithDexForRelease FAILED

    BUILD FAILED

    Total time: 26.028 secs
    ]
    exit code: 1
    UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
    UnityEditor.Android.GradleWrapper.RunJava (System.String args, System.String workingdir, UnityEditor.Android.Progress progress)
    Rethrow as GradleInvokationException: Gradle build failed
    UnityEditor.Android.GradleWrapper.RunJava (System.String args, System.String workingdir, UnityEditor.Android.Progress progress)
    UnityEditor.Android.GradleWrapper.Run (System.String workingdir, System.String task, UnityEditor.Android.Progress progress)
    UnityEditor.Android.PostProcessor.Tasks.BuildGradleProject.Execute (UnityEditor.Android.PostProcessor.PostProcessorContext context)
    UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context)
    UnityEditor.HostView:OnGUI()
     
  2. Seraphim-Whiteless

    Seraphim-Whiteless

    Joined:
    Jun 23, 2014
    Posts:
    197
  3. Seraphim-Whiteless

    Seraphim-Whiteless

    Joined:
    Jun 23, 2014
    Posts:
    197
  4. JuliusM

    JuliusM

    Unity Technologies

    Joined:
    Apr 17, 2013
    Posts:
    824
    From the error message it seems that one of the plugins in your project was compiled with source / target flags set to 1.8, while the gradle plugin supports only source / target 1.7. I don't know why it would happen only on a single computer if everything is identical between different computers. Did you change anything (upgraded Unity / android sdk / java / custom plugins) before this issue started happening?
     
  5. Eli1234

    Eli1234

    Joined:
    Jul 13, 2017
    Posts:
    24
    Hi Julius, I'm having the same issue as Seraphim. I thought the same thing about the meaning of the error message, but I wasn't sure how to debug further. Are there any tools I can use to dump out the flags that were used to compile each of the plugins in my projects? Doing a bit of googling, I could write a script that would:
    foreach (aar, jar plugin in project)
    unpackage, get all .class files
    foreach class
    javap -verbose and check the major version numbers, verifying that they are all 51?​

    if there's a faster way, I'm all ears - that sounds like a pain ;)

    edit: Yep, that was it! I was javac'ing a home-grown plugin without any source / target flags. I'm using JDK 8, so I guess it would have used 1.8 by default. I recompiled the plugin with -source 1.7 and -target 1.7, and the gradle build is working fine now.
     
    Last edited: Feb 1, 2018
  6. Seraphim-Whiteless

    Seraphim-Whiteless

    Joined:
    Jun 23, 2014
    Posts:
    197
    Hi! can you share that script?
     
  7. Seraphim-Whiteless

    Seraphim-Whiteless

    Joined:
    Jun 23, 2014
    Posts:
    197
    Yep!
    It so.
    One of our plugin was compiled with 1.8 Java.
    After rebuild with 1.7 libraries changed 1 bit in code and now all working perfect.
    Thanks a lot!