gpt4 book ai didi

java - 如何配置 Unity 2017.4 以面向 Android 并避免在 OSX 上构建失败?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:33:51 25 4
gpt4 key购买 nike

在使用最新版本的 Android Studio (3.1) 和 Unity (2017.4) 安装全新/新系统后,我一直在与几次构建失败作斗争。失败如:CommandInvokationFailure: Unable to list target platforms. Please make sure the android sdk path is correct跨越多个副本,因为提供的解决方案是变通办法,不能很好地解释根本问题以及如何在 Mac 上优雅地解决这个问题。

Unity -> 首选项 -> 外部工具 我已正确设置 Android SDK 路径以指向 Android Studio 安装的路径,并将 JDK 路径设置为指向 JDK 8 版本(我知道现在 Android 工具不适用于 Java 9+)但我仍然遇到构建失败的问题。

我正在寻找一种解决方案:

  1. 允许我保留多个 java 版本(我使用 jenv )
  2. 不会弄乱我的 java 设置中的符号链接(symbolic link)
  3. 允许我使用我的 android sdk 安装(我使用 Android Studio 中的那个)并且不需要我弄乱它(例如降级 Android 工具),除非正式安装任何缺少的模块

最佳答案

似乎为了构建 Android,当前版本的 Unity 不仅依赖于在 Preferences -> External Tools 中设置的 JDK,而且还依赖于返回的全局 java home命令 /usr/libexec/java_home在 Mac 上。所以两者都必须指向 JDK 8 版本(v 9 或 10 不起作用)。

因此,如果您无法从系统中删除 Java 9/10,则必须确保 /usr/libexec/java_home指向 JDK 8 安装。

不幸的是,此命令不允许您设置或配置特定的 JDK - 它默认返回最高版本,基于对 Info.plist 中提供的信息进行排序。在 Contents 下在每个虚拟机中。

先决条件:确保您已通过 Android Studio 的 SDK 管理器下载构建所需的所有模块

解决方案:为了优雅地解决这个问题,您可以转到/Library/Java/JavaVirtualMachines。 ,找到等于或大于 9 的 VM(现在是 9 或 10)并在它们的 Contents 中目录重命名 Info.plistInfo.plist.off或类似的。 $JAVA_HOME时JDK仍然可以使用指向它,或者在脚本或配置中明确引用(例如与 jenv 一起使用)。在你这样做之后/usr/libexec/java_home将指向 JDK 8 VM,您的构建将成功。

希望一旦 Google 确保 Android 工具与最新版本的 Java 一起工作,并且一旦 Unity 完全依赖于配置的 SDK 而不是随意使用系统范围/全局 Java 系统,这将不是问题。

关于java - 如何配置 Unity 2017.4 以面向 Android 并避免在 OSX 上构建失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49630165/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com