Unity:JDK停止工作

时间:2018-08-08 17:06:51

标签: android unity3d java-8

我正在用Unity 2018.2.2(2018年8月8日最新版本)构建一个小型android游戏。 我在游戏上工作了几个星期,但现在,没有明显的理由,Unity在尝试找到我的JDK时失败。 当我分配文件夹(edit-> preferences->外部工具)时,它失败并显示下一个问题:

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:构建失败!   无法找到Java开发工具包(JDK)。   UnityEditor.BuildPipeline:BuildPlayerInternalNoCheck(String [],String,String,BuildTargetGroup,BuildTarget,BuildOptions,布尔值)   UnityEditor.DefaultBuildMethods:BuildPlayer(BuildPlayerOptions)(位于C:\ buildslave \ unity \ build \ Editor \ Mono \ BuildPlayerWindowBuildMethods.cs:170)   UnityEditor.BuildPlayerWindow:CallBuildMethods(布尔值,BuildOptions)(在C:\ buildslave \ unity \ build \ Editor \ Mono \ BuildPlayerWindowBuildMethods.cs:94)   UnityEditor.BuildPlayerWindow:GUIBuildButtons(IBuildWindowExtension,Boolean,Boolean,Boolean,BuildPlatform)(位于C:\ buildslave \ unity \ build \ Editor \ Mono \ BuildPlayerWindow.cs:891)   UnityEditor.BuildPlayerWindow:ShowBuildTargetSettings()(在C:\ buildslave \ unity \ build \ Editor \ Mono \ BuildPlayerWindow.cs:816)   UnityEditor.BuildPlayerWindow:OnGUI()(在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)(在C:\ buildslave \ unity \ build \ Editor \ Mono \ HostView.cs:295)   UnityEditor.HostView:Invoke(String)(在C:\ buildslave \ unity \ build \ Editor \ Mono \ HostView.cs:288)   UnityEditor.HostView:OldOnGUI()(在C:\ buildslave \ unity \ build \ Editor \ Mono \ HostView.cs:104)   UnityEngine.Experimental.UIElements.IMGUIContainer:DoOnGUI(Event,Boolean)(位于C:\ buildslave \ unity \ build \ Modules \ UIElements \ IMGUIContainer.cs:215)   UnityEngine.Experimental.UIElements.IMGUIContainer:HandleIMGUIEvent(Event)(在C:\ buildslave \ unity \ build \ Modules \ UIElements \ IMGUIContainer.cs:380)   UnityEngine.Experimental.UIElements.IMGUIContainer:HandleEvent(EventBase)(位于C:\ buildslave \ unity \ build \ Modules \ UIElements \ IMGUIContainer.cs:359)   UnityEngine.Experimental.UIElements.EventDispatcher:DispatchEvent(EventBase,IPanel)(在C:\ buildslave \ unity \ build \ Modules \ UIElements \ EventDispatcher.cs:260)   UnityEngine.Experimental.UIElements.UIElementsUtility:DoDispatch(BaseVisualElementPanel)(位于C:\ buildslave \ unity \ build \ Modules \ UIElements \ UIElementsUtility.cs:243)   UnityEngine.Experimental.UIElements.UIElementsUtility:ProcessEvent(Int32,IntPtr)(位于C:\ buildslave \ unity \ build \ Modules \ UIElements \ UIElementsUtility.cs:74)   UnityEngine.GUIUtility:ProcessEvent(Int32,IntPtr)(位于C:\ buildslave \ unity \ build \ Modules \ IMGUI \ GUIUtility.cs:171)   (文件名:-1)

谢谢。

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

3 个答案:

答案 0 :(得分:3)

我有同样的问题。以下修复程序对我有用。

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

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

启动Android构建

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

按是

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

答案 1 :(得分:2)

错误是我没有文件“ generate_xml_from_google_services_json” ...嗯,确实有,但是我不知道为什么她的名字只是“生成”。当我更改此文件的名称时,所有文件都可以正常工作。

答案 2 :(得分:1)

转到统一>安装并单击三个点>添加模块>在android build中选择箭头并选择 SDK和NDK&JKD 问题已解决!