Unity - Unable to convert classes into dex format. (Unity Ads & Unity IAP)
我为Android制作了一个小型Unity游戏,该游戏在玩家死亡五次后显示了广告。 在实施Unity Ads之前,我能够创建apk。
当我以测试模式(通过"服务"标签)实施广告(通过启用内置广告扩展插件)时,我决定也要在应用程序购买中实施(也通过"服务"标签)。 导入相关资产后,我决定生成一个新的APK以在Android设备上测试广告。 那时我遇到以下错误。
我试图删除IAP资产并重新导入我的当前资产,但无济于事。 在搞乱导入和重新导入之后,突然Advertisement.IsReady停止在编辑器中返回true。
环顾Google的原因之一是重复的jar文件。 奇怪的是,我的项目没有jar文件,而没有aar文件,而我没有重复文件。
对于解决此问题,我有些困惑。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | CommandInvokationFailure: Unable to convert classes into dex format. C:\\Program Files\\Java\\jdk1.7.0_79\\bin\\java.exe -Xmx2048M -Dcom.android.sdkmanager.toolsdir="C:/Users/MyUser/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[ ] exit code: 1 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() |

Unsupported major.minor version 52.0
这告诉您这些类是使用Java 8的JDK编译的。(源)但是,您的JDK是Java 7的(C:\ Program Files \ Java \ jdk1.7.0_79 \ bin \ java.exe)。 下载并安装更新的JDK,然后重试。