我正在用Unity 2018.2.2(2018年8月8日最新版本)构建一个小型android游戏。 我在游戏上工作了几个星期,但现在,没有明显的理由,Unity在尝试找到我的JDK时失败。 当我分配文件夹(edit-> preferences->外部工具)时,它失败并显示下一个问题:
[如果看不到图像:“无法检测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)
谢谢。
编辑: 最后我解决了这个问题。如果需要更多信息,请看我的答案。
答案 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 问题已解决!