更新Android SDK包列表失败(Unity)

问题描述 投票:0回答:1

大家。我为我的项目工作,有一瞬间我需要更改 API 版本(23 或 27),我在项目设置中设置它,并使用我通过编辑器安装 Unity(2020.3.17f1)获得的 Android SDK 设置它,说我没有需要的版本。之后我通过 Android Studio SDK Manager 更新了所有 API 版本、cmdline-tools 和其他一些东西,但现在不起作用(CommandInvokationFailure:无法更新 Android SDK 包列表。)。

以下是我尝试构建后出现的所有错误:

1

java.lang.UnsupportedClassVersionError: com/android/sdklib/tool/sdkmanager/SdkManagerCli has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:495)
Error: A JNI error has occurred, please check your installation and try again
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
Exception in thread "main"

UnityEngine.GUIUtility:processEvent (int,intptr,bool&)

2

CommandInvokationFailure: Failed to update Android SDK package list.
S:\Unity\2020.3.17f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\cmdline-tools\latest\bin\sdkmanager.bat --list

stderr[
java.lang.UnsupportedClassVersionError: com/android/sdklib/tool/sdkmanager/SdkManagerCli has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:495)
Error: A JNI error has occurred, please check your installation and try again
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.Command+WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) (at <c8b3b39837d14a59b516963b78bf9032>:0)
UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.Command+WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) (at <c8b3b39837d14a59b516963b78bf9032>:0)
UnityEditor.Android.AndroidSDKTools.RunAndroidSdkTool (System.String toolName, System.String arguments, System.Boolean updateCommand, System.String errorMsg, System.String toolsDir, System.String[] warningsToIgnore) (at <c8b3b39837d14a59b516963b78bf9032>:0)
UnityEditor.Android.AndroidSDKTools.ListComponentsVersions () (at <c8b3b39837d14a59b516963b78bf9032>:0)
UnityEditor.Android.SDKManager.UpdatePackagesList () (at <c8b3b39837d14a59b516963b78bf9032>:0)
UnityEditor.Android.SDKManager.HighestVersionInstalled (UnityEditor.Android.SDKManager+Component tool) (at <c8b3b39837d14a59b516963b78bf9032>:0)
UnityEditor.Android.PostProcessor.Tasks.CheckAndroidSDK+SDKToolsDetector.GetVersion () (at <c8b3b39837d14a59b516963b78bf9032>:0)
UnityEditor.Android.PostProcessor.Tasks.CheckAndroidSDK+SDKComponentDetector.Detect (System.Version minVersion, UnityEditor.Android.PostProcessor.ProgressHandler onProgress) (at <c8b3b39837d14a59b516963b78bf9032>:0)
UnityEditor.Android.PostProcessor.Tasks.CheckAndroidSDK.EnsureSDKComponentVersion (System.Version minVersion, UnityEditor.Android.PostProcessor.Tasks.CheckAndroidSDK+SDKComponentDetector detector) (at <c8b3b39837d14a59b516963b78bf9032>:0)
UnityEditor.Android.PostProcessor.Tasks.CheckAndroidSDK.Execute (UnityEditor.Android.PostProcessor.PostProcessorContext context) (at <c8b3b39837d14a59b516963b78bf9032>:0)
UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context) (at <c8b3b39837d14a59b516963b78bf9032>:0)
UnityEngine.GUIUtility:processEvent(Int32, IntPtr, Boolean&)

3

UnityEngine.GUIUtility:processEvent (int,intptr,bool&)

4

UnityEditor.BuildPlayerWindow+BuildMethodException: 3 errors
at UnityEditor.BuildPlayerWindow+DefaultBuildMethods.BuildPlayer (UnityEditor.BuildPlayerOptions options) [0x002ca] in <d0e4b8c1204147f3935b6e9c8b8565ad>:0
at UnityEditor.BuildPlayerWindow.CallBuildMethods (System.Boolean askForBuildLocation, UnityEditor.BuildOptions defaultBuildOptions) [0x00080] in <d0e4b8c1204147f3935b6e9c8b8565ad>:0
UnityEngine.GUIUtility:processEvent (int,intptr,bool&)

我尝试将 Unity Preferences 中的 SDK 文件夹更改为我的 Android Studio 文件夹,取消勾选并勾选 Preferences 中的所有文件夹,在 Users 中创建 repositories.cfg ame\ .android,创建了新的项目,仅更改了 API 版本,将 d8.bat 更改为 dx.bat,与 AndroidPlayer\SDK uild-tools .0.2 中的 .jar 文件相同,在 package.xml 中将 obsolete 更改为 false rue (AndroidPlayer\SDK ools),删除了 Gradle 属性模板文件中的 R8 行,但还没有任何帮助。

android unity-game-engine sdk
1个回答
0
投票

您找到解决方案了吗?

© www.soinside.com 2019 - 2024. All rights reserved.