android - 统一: JDK stop working

标签 android unity3d java-8

我正在使用 Unity 2018.2.2(最新版本为 08/08/2018)构建一个小安卓游戏。 我在这个游戏上工作了几个星期,但现在,Unity 在尝试定位我的 JDK 时无缘无故地失败了。 当我分配文件夹(编辑->首选项->外部工具)时它失败并向我显示下一个问题:

Error I obtain

[如果您看不到图像:“无法检测 Java 版本。Android 开发需要 JDK 8 (1.8)。仅安装 Java Runatime Environment (JRE) 是不够的。”]

我首先想到的是,它可能因为 JDK 的更新而失败,所以我检查变量路径是否正常,确实如此。 然后,我卸载 jdk 并再次安装 (jdk1.8.0_181)。它通常安装有 2 个文件夹(jdk1.8.0_181 和 jre1.8.0_181),我将变量路径更新为“JAVA_HOME C:\Program Files\Java\jdk1.8.0_181\bin”(在我的例子中)。 但是当我尝试在 Unity 中选择这个文件夹时,Unity 显示图像错误。我真的很困惑。四天前它工作正常。什么可能失败了? 这是我尝试构建 APK 并选择 JDK 文件夹时的日志:

UnityException: Build failure! Unable to locate Java Development Kit (JDK). UnityEditor.BuildPipeline:BuildPlayerInternalNoCheck(String[], String, String, BuildTargetGroup, BuildTarget, BuildOptions, Boolean) UnityEditor.DefaultBuildMethods:BuildPlayer(BuildPlayerOptions) (at C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindowBuildMethods.cs:170) UnityEditor.BuildPlayerWindow:CallBuildMethods(Boolean, BuildOptions) (at C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindowBuildMethods.cs:94) UnityEditor.BuildPlayerWindow:GUIBuildButtons(IBuildWindowExtension, Boolean, Boolean, Boolean, BuildPlatform) (at C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindow.cs:891) UnityEditor.BuildPlayerWindow:ShowBuildTargetSettings() (at C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindow.cs:816) UnityEditor.BuildPlayerWindow:OnGUI() (at C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindow.cs:414) System.Reflection.MonoMethod:InternalInvoke(MonoMethod, Object, Object[], Exception&) System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo) System.Reflection.MethodBase:Invoke(Object, Object[]) UnityEditor.HostView:Invoke(String, Object) (at C:\buildslave\unity\build\Editor\Mono\HostView.cs:295) UnityEditor.HostView:Invoke(String) (at C:\buildslave\unity\build\Editor\Mono\HostView.cs:288) UnityEditor.HostView:OldOnGUI() (at C:\buildslave\unity\build\Editor\Mono\HostView.cs:104) UnityEngine.Experimental.UIElements.IMGUIContainer:DoOnGUI(Event, Boolean) (at C:\buildslave\unity\build\Modules\UIElements\IMGUIContainer.cs:215) UnityEngine.Experimental.UIElements.IMGUIContainer:HandleIMGUIEvent(Event) (at C:\buildslave\unity\build\Modules\UIElements\IMGUIContainer.cs:380) UnityEngine.Experimental.UIElements.IMGUIContainer:HandleEvent(EventBase) (at C:\buildslave\unity\build\Modules\UIElements\IMGUIContainer.cs:359) UnityEngine.Experimental.UIElements.EventDispatcher:DispatchEvent(EventBase, IPanel) (at C:\buildslave\unity\build\Modules\UIElements\EventDispatcher.cs:260) UnityEngine.Experimental.UIElements.UIElementsUtility:DoDispatch(BaseVisualElementPanel) (at C:\buildslave\unity\build\Modules\UIElements\UIElementsUtility.cs:243) UnityEngine.Experimental.UIElements.UIElementsUtility:ProcessEvent(Int32, IntPtr) (at C:\buildslave\unity\build\Modules\UIElements\UIElementsUtility.cs:74) UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr) (at C:\buildslave\unity\build\Modules\IMGUI\GUIUtility.cs:171) (Filename: Line: -1)

提前致谢。

编辑: 最后我解决了问题。如果需要更多信息,请查看我的答案。

最佳答案

我遇到了同样的问题。以下修复对我有用。

转到编辑 > 首选项 > 外部工具

删除JDK路径(也许还有Android SDK路径?)

启动 Android 构建

Unity 将显示消息“Unity 已在[jdk 路径] 检测到 Java 开发工具包 (JDK)。您要使用此 JDK 目录吗?”

按是

还值得注意的是,目前 Unity、Android 和最新版本的 JDK 之间存在不兼容性。但似乎你已经有了当前正确的 JDK 版本:1.8.0_181

关于android - 统一: JDK stop working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51752105/

相关文章:

algorithm - 使用什么算法来查找 2D 中的空白区域?

c# - 如何压缩base64字符串

android - 具有两种功能的动态按钮 ANDROID

android - Phonegap 地理定位插件

java - DatabaseException : Failed to convert value of type java. util.HashMap 到字符串 - Firebase

java - 排序和过滤对象列表

java - 两个不同的自定义对象列表与流的交集和并集

android dumpsys batteryinfo 与 android dumpsys batterystats

unity3d - 在Unity中选择输出音频设备

java-8 - 在 map 中创建 List<Object>