Android build error: unable to convert classes into dex format
Hello, I have created a game and I want to build it for Android (the first time). Every time I try to build, this error pops (Unable to convert classes into dex format). I have tried EVERYTHING with it; the google_play_services_lib folder is placed in Plugins/Android/ directory, removed it along with the AdMob package and replaced it again, set the bundle identifier (com.company_name.product_name), I searched in google, pages, and other forums but I didn't find any solution that could solve my problem.
The Error: Error building Player: CommandInvokationFailure: Unable to convert classes into dex format. See the Console for details. C:/Program Files/Java/jdk1.7.0_79\bin\java.exe -Xmx2048M -Dcom.android.sdkmanager.toolsdir="C:/Users/Jackblue2009/AppData/Local/Android/sdk\tools" -Dfile.encoding=UTF8 -jar "C:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer/Tools\sdktools.jar" -
stderr[ Exception in thread "main" java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : Unsupported major.minor version 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:800) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) at java.net.URLClassLoader.access$100(URLClassLoader.java:71) at java.net.URLClassLoader$1.run(URLClassLoader.java:361) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:274) at SDKMain.main(SDKMain.java:127) ] stdout[
]
====================================================================================
CommandInvokationFailure: Unable to convert classes into dex format. See the Console for details. C:/Program Files/Java/jdk1.7.0_79\bin\java.exe -Xmx2048M -Dcom.android.sdkmanager.toolsdir="C:/Users/Jackblue2009/AppData/Local/Android/sdk\tools" -Dfile.encoding=UTF8 -jar "C:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer/Tools\sdktools.jar" -
stderr[ Exception in thread "main" java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : Unsupported major.minor version 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:800) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) at java.net.URLClassLoader.access$100(URLClassLoader.java:71) at java.net.URLClassLoader$1.run(URLClassLoader.java:361) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:274) at SDKMain.main(SDKMain.java:127) ] stdout[
] UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) UnityEditor.Android.AndroidSDKTools.RunCommandInternal (System.String javaExe, System.String sdkToolsDir, System.String[] sdkToolCommand, Int32 memoryMB, System.String workingdir, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) UnityEditor.Android.AndroidSDKTools.RunCommandSafe (System.String javaExe, System.String sdkToolsDir, System.String[] sdkToolCommand, Int32 memoryMB, System.String workingdir, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) UnityEditor.HostView:OnGUI()
Please, if anyone knows anything, your help is much appreciated
Answer by turgaysenlet · May 05, 2016 at 05:03 AM
I had the same problem in Mac when had jdk-7u79-macosx-x64 or jdk-7u80-macosx-x64 installed. I deleted them from under /Library/Java/JavaVirtualMachines and installed jdk-8u92-macosx-x64 and the problem is solved.
major.$$anonymous$$or version 52.0 means that your JSD is 1.7. Android does not let you use less than 1.7 so there is no going down (1.6 etc), so I chose to go up in to 1.8. Hope this is a feasible solution for you.
@turgaysenlet Thank you so much!! I did have the JD$$anonymous$$-7u79 for windows. I uninstalled it and installed newer version (JD$$anonymous$$-8u92) and it worked. I've been looking into it for a days now, thanks man you're a life savior :)
Just ran into this issue. It would seem the Android Studio installer still links to the jdk 7 download, not the jdk 8 one you need.
Answer by jackblue2009 · Sep 12, 2016 at 06:13 PM
@apatton try replacing jdk 7 with jdk 8, then in the directory paths in the preference of Unity, set the JDK path to where you installed the jdk 8 ;)
Your answer
Follow this Question
Related Questions
Animators in Android build 2 Answers
Failed to re-package resources 0 Answers
Can standard shader reflections work accurately on mobile? 2 Answers
Build Failure with AdMob 0 Answers
My App Works Perfectly In Editor but Not On Android Build 3 Answers