Unity - 无法将 类 转换为 dex 格式。 (统一广告和统一内购)
Unity - Unable to convert classes into dex format. (Unity Ads & Unity IAP)
我为 android 制作了一个小型 Unity 游戏,它会在玩家死亡五次后显示一个广告。在实施 Unity Ads 之前,我能够创建 apks。
当我在测试模式下(通过服务选项卡)实施广告时(通过启用内置广告扩展)我决定也在应用程序购买中实施(也通过服务选项卡)。当我导入相关资产时,我决定生成一个新的 apk 来测试 android 设备上的广告。就在那时我遇到了以下错误。
我尝试删除 iap 资产并重新导入我当前的资产,但无济于事。在搞乱导入和重新导入后突然 Advertisement.IsReady 停止在编辑器中返回 true。
环顾四周 google 原因之一是 jar 文件重复。奇怪的是,我的项目没有 jar 文件,而是有 aar 文件,我没有重复的文件。
我对如何解决这个问题有点困惑。
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.access0(URLClassLoader.java:71)
at java.net.URLClassLoader.run(URLClassLoader.java:361)
at java.net.URLClassLoader.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
这告诉你 类 是用 JDK 为 Java 8 编译的。(Source) 然而,你的 JDK 是为 Java 7 (C:\Program Files\Java\jdk1.7.0_79\bin\java.exe)。下载并安装更新的 JDK 并重试。
我为 android 制作了一个小型 Unity 游戏,它会在玩家死亡五次后显示一个广告。在实施 Unity Ads 之前,我能够创建 apks。
当我在测试模式下(通过服务选项卡)实施广告时(通过启用内置广告扩展)我决定也在应用程序购买中实施(也通过服务选项卡)。当我导入相关资产时,我决定生成一个新的 apk 来测试 android 设备上的广告。就在那时我遇到了以下错误。
我尝试删除 iap 资产并重新导入我当前的资产,但无济于事。在搞乱导入和重新导入后突然 Advertisement.IsReady 停止在编辑器中返回 true。
环顾四周 google 原因之一是 jar 文件重复。奇怪的是,我的项目没有 jar 文件,而是有 aar 文件,我没有重复的文件。
我对如何解决这个问题有点困惑。
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.access0(URLClassLoader.java:71)
at java.net.URLClassLoader.run(URLClassLoader.java:361)
at java.net.URLClassLoader.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
这告诉你 类 是用 JDK 为 Java 8 编译的。(Source) 然而,你的 JDK 是为 Java 7 (C:\Program Files\Java\jdk1.7.0_79\bin\java.exe)。下载并安装更新的 JDK 并重试。