关于android:Unity-无法将类转换为dex格式。 (Unity Ads和Unity IAP)

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

.aar files
Unity Version


Unsupported major.minor version 52.0

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