Unity Version - 5.4.1 p2
In Unity Build settings, I have Android 4.0.3 Ice cream sandwich as the minimum api level,
JDK version = 1.7
I was able to take build with Unity 5.3.x, After upgrading to Unity 5.4.x, I am not able to publish for Android. Getting the below error.
CommandInvokationFailure: Unable to convert classes into dex format.
C:\Program Files\Java\jdk1.7.0_40\bin\java.exe -Xmx2048M -Dcom.android.sdkmanager.toolsdir
="E:/adt-bundle-windows-x86_64/adt-bundle-windows-x86_64-20140702/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:792)
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:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:270)
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.BuildPlayerWindow:BuildPlayerAndRun()
UPDATE 1:
Upgraded google play services and andrid sdk tools to 24.x. Now I am getting the below error.
CommandInvokationFailure: Unable to convert classes into dex format.
C:/Program Files/Java/jdk1.8.0_101\bin\java.exe -Xmx2048M -Dcom.android.sdkmanager.toolsdir="E:/adt-bundle-windows-x86_64/adt-bundle-windows-x86_64-20140702/sdk\tools" -Dfile.encoding=UTF8 -jar "C:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer/Tools\sdktools.jar" -
stderr[
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/internal/zzbn;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/firebase/FirebaseApiNotAvailableException;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/firebase/FirebaseException;
3 errors; aborting
]
Those 3 libraries are already a part of some other libraries... Now I have to find the conflict and remove them