Unity - 无法将类转换为dex格式。 (Unity Ads& Unity IAP)

时间:2017-02-12 06:16:46

标签: android unity3d unity5

我为Android做了一个小型Unity游戏,在玩家死了五次之后显示一则广告。在实施 Unity Ads 之前,我能够创建apks。

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

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

环顾谷歌一个原因是重复 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.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()

.aar files Unity Version

1 个答案:

答案 0 :(得分:0)

  

不受支持的major.minor版本52.0

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