java - 团结| Android - 无法签署 APK 包 : Unsupported major. 次要版本 52.0

标签 java android unity-game-engine

我尝试在 Unity (2017.3.0f3) 中构建我的 apk,但收到错误“不支持的 Major.minor 版本 52.0”。我在其他地方读到要修复此问题,请下载 Java JDK 8 并选择路径。我已经使用不同版本的 Java 8 完成了此操作,但它们都不起作用。我已尝试更新所有 Android SDK 包,但 Unity 不会基于最新的 SDK 工具构建,因此我必须将其替换为修订版 25.2.5(2017 年 1 月)工具,如以下 Unity 答案页面中指定:

Unity Answer Page

我现在很茫然,任何建议都值得赞赏。谢谢。

当前设置:

enter image description here

错误日志:

    CommandInvokationFailure: Failed to sign APK package.
C:\Users\Jack\AppData\Local\Android\Sdk\build-tools\27.0.3\apksigner.bat sign --ks "E:/JRFApplications/Keystore/jrfapplications_2018.keystore" --ks-pass stdin  --ks-key-alias "eggscapade" --key-pass stdin  "E:\JRFApplications\Apps\Egg\Temp/StagingArea/Package.apk"

stderr[
java.lang.UnsupportedClassVersionError: com/android/apksigner/ApkSignerTool : 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:412)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
Exception in thread "main" 
]
stdout[

]
exit code: 1
UnityEditor.Android.Command.WaitForProgramToRun (UnityEditor.Utils.Program p, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.Command.RunWithStdin (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg, System.String[] input)
UnityEditor.Android.PostProcessor.Tasks.TasksCommon.Exec (System.String command, System.String args, System.String workingdir, System.String errorMsg, System.String[] stdin)
UnityEditor.Android.PostProcessor.Tasks.BuildAPK.SignPackage (UnityEditor.Android.PostProcessor.PostProcessorContext context)
UnityEditor.Android.PostProcessor.Tasks.BuildAPK.Execute (UnityEditor.Android.PostProcessor.PostProcessorContext context)
UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

安装并测试但未成功的 JDK 版本:

enter image description here

最佳答案

我通过在build设置中将 Unity 构建系统从内部更改为 Gradle 成功解决了这个问题

关于java - 团结| Android - 无法签署 APK 包 : Unsupported major. 次要版本 52.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48590811/

相关文章:

java - 在 xpages 中使用 smartnsf

java - 对字符串数组进行计数和排序的最佳方法是什么

android - 包含 ComposeView 的 BottomSheetDialog

python - Android.mk 调试输出

3d - 获取3D模型指定方向上最远的顶点 - Unity

c# - 将 Firebase Admin SDK 添加到 Unity 项目

java - 如何使用 selenium webdriver 查找某个元素是否已启用?

java - 了解数组列表的迭代

android - 在 PWA 中,虚拟键盘与 html 元素重叠,在移动 chrome 浏览器中则不会

c# - 当索引为 ( array.length - 1 ) 时,发生 IndexOutOfRangeException,但代码仍然执行