更新Android SDK包列表失败 - Unity 2019.2.10f1

Sid*_*rth 8 android unity-game-engine

当我尝试导出 Android 平台的游戏版本时,我开始收到此错误:

在此输入图像描述

在项目设置中 - 最低 API 级别和目标 API 级别无论如何都不会加载!虽然我已使用 Unity 提供的所有默认设置来导出 Android 版本。这是说明这一点的图像:

在此输入图像描述

现在该怎么做才能解决这个错误?

我已经阅读了与同一问题相关的所有线程,但总的来说,我无法找到真正适合我的解决方案。

sad*_*rag 20

  1. 项目设置 > 播放器 > 目标 API 级别:将“自动”更改为“Android 11”(或其他)
  2. 播放一次并停止。
  3. 将目标 api 级别更改为自动。

不知道问题是否一样,但我每次都是这样处理的。

编辑:现在我只是这样做;我打开播放器设置中的其他设置选项卡。控制台中出现错误。我播放并停止一次,错误就消失了(无需更改 API 级别)


fil*_*ilo 5

我刚刚在 MacOS 上使用 Unity 2019.4.18.f1/2019.2.21.f1 时遇到了同样的错误,经过一番折腾后,我想我可能已经弄清楚了其中一些问题。

有时(不知道为什么)Unity(或其他东西)在启动 Unity 时开始将 JAVA_HOME 环境变量重置为空字符串。因此,即使您根据 MacOS 版本通过控制台或 .bashrc/.zshrc 设置 JAVA_HOME,它仍然不起作用。

一些帖子提到在外部工具 SDK 路径末尾添加“/”。我认为这只会迫使 Unity 再次设置路径,使其能够运行一段时间。但对我来说,错误第二天又出现了。

我永久修复了这个问题,在编辑器文件夹中添加了一个编辑器脚本,该脚本会在每次 Unity 启动/加载时更改 JAVA_HOME 环境变量。

这是 MacOS 的方法,只需将其粘贴到编辑器文件夹中的 C# 脚本中即可。

[InitializeOnLoadMethod]
static void SetJavaHome()
{
    //Debug.Log(EditorApplication.applicationPath);

    Debug.Log("JAVA_HOME in editor was: " + Environment.GetEnvironmentVariable("JAVA_HOME"));

    string newJDKPath = EditorApplication.applicationPath.Replace("Unity.app", "PlaybackEngines/AndroidPlayer/OpenJDK");

    if (Environment.GetEnvironmentVariable("JAVA_HOME") != newJDKPath)
    {
        Environment.SetEnvironmentVariable("JAVA_HOME", newJDKPath);
    }

    Debug.Log("JAVA_HOME in editor set to: " + Environment.GetEnvironmentVariable("JAVA_HOME"));
}
Run Code Online (Sandbox Code Playgroud)