【问题标题】:Unity - Unable to convert classes into dex format. (Unity Ads & Unity IAP)Unity - 无法将类转换为 dex 格式。 (Unity 广告和 Unity IAP)
【发布时间】:2017-02-12 06:16:45
【问题描述】:

我为 Android 制作了一个小型 Unity 游戏,它会在玩家死亡五次后显示广告。在实施 Unity Ads 之前,我能够创建 apk。

当我在测试模式下(通过启用内置广告扩展扩展)实施广告(通过服务选项卡)时,我决定在应用购买中也实施(也通过服务选项卡)。当我导入相关资产时,我决定生成一个新的 apk 来测试 Android 设备上的广告。就在那时我遇到了以下错误。

我尝试删除 iap 资产并重新导入我当前的资产,但无济于事。在搞砸了导入和重新导入之后,Advertisement.IsReady 突然停止在编辑器中返回 true。

环顾谷歌,原因之一是重复的 jar 文件。奇怪的是,我的项目有 aar 文件,而不是 jar 文件,我没有这些文件重复。

我对如何解决这个问题有点困惑。

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()

【问题讨论】:

    标签: android unity3d unity5


    【解决方案1】:

    不支持的major.minor 52.0版

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

    【讨论】:

    • 花了我一周的时间来测试它,但这就是问题所在。非常感谢。
    猜你喜欢
    • 2019-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-04
    • 1970-01-01
    • 1970-01-01
    • 2022-08-09
    • 2017-01-02
    相关资源
    最近更新 更多