Unity打包APK错误:CommandInvokationFailure: Unable to convert classes into dex format.
2018-03-10 22:17
676 查看
Unity打包APK错误:CommandInvokationFailure: Unable to convert classes into dex format.
背景描述
使用unity5.4.3+vuforia-unity-6-2-10 做一个简单的AR识别图demo。错误描述
在打包到Android平台导出apk时出现了如下图的错误:接着根据错误弹窗的提示查看Console面板,错误提示如下:
具体他错误提示为:
CommandInvokationFailure: Unable to convert classes into dex format.
C:/Program Files (x86)/Java/jdk1.7.0_55\bin\java.exe -Xmx1024M -Dcom.android.sdkmanager.toolsdir=”D:/2DGamesetup/Android_SDK\tools” -Dfile.encoding=UTF8 -jar “D:\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.access100(URLClassLoader.java:71)atjava.net.URLClassLoader100(URLClassLoader.java:71)atjava.net.URLClassLoader1.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: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.HostView:OnGUI()
解决方法
通过上面加粗的文字:UnsupportedClassVersionError: com/android/dx/command/Main : Unsupported major.minor version 52.0
可以发现这应该是jdk版本问题。通过网上查找version 52.0所对应的是jdk1.8。所以这个问题的原因就是用了低版本的jdk运行了高版本的jdk编译的文件。通过更换JDK就可以解决了。
具体步骤是:首先安装JDK1.8的安装包,然后配置环境变量,接着点击Unity菜单栏的Edit->Preferences->External Tools更换JDK。
更换前:
更换后:
接着再进行打包APK,成功打包。
注意:之前打包时也遇到过Unable to convert classes into dex format. 错误,一般是jar文件重复编译,通过这次打包错误:学到了应该仔细查看并分析错误提示,做到具体问题具体分析。
相关文章推荐
- [Unity5.3.6与APK]CommandInvokationFailure:Unable to convert classes into dex format错误的解决
- unity调用安卓打包apk时的错误unable to convert classes into dex format
- Unity3d 打包时报错 CommandInvokationFailure: Unable to convert classes into dex format. See the Console f
- Unity3d 打包时报错 CommandInvokationFailure: Unable to convert classes into dex format. See the Console for details.
- CommandInvokationFailure: Unable to convert classes into dex format解决方法
- Unity Build APK 出现Unable to convert classes into dex format错误
- 【Android】Error building Player: CommandInvokationFailure: Unable to convert classes into dex format.
- Error building Player: CommandInvokationFailure: Unable to convert classes into dex format. See the
- Error building Player: CommandInvokationFailure: Unable to convert classes into dex format. See the
- CommandInvokationFailure: Unable to convert classes into dex format
- [Unity 开发]Unable to convert classes into dex format 解决方案之一
- Unity3D-Android导出APK出现“Unable to convert classes into dex format.”
- Unity 打包错误:CommandInvokationFailure: Failed to build apk.
- Unity3D-导出APK报错CommandInvokationFailure: Unable to convert classes into dex format.
- Unable to convert classes into dex format. See the Console for details
- unity sdk 报错CommandInvokationFailure: Unable to convert classes into dex format解决方法
- Unity CommandInvokationFailure: Failed to sign APK package.
- Conversion to Dalvik format failed: Unable to execute dex 解决Android打包错误
- Android打包时下面的错误:Unable to execute dex: GC overhead limit exceeded
- android开发:错误 Conversion to Dalvik format failed: Unable to execute dex: null