Visual Studio 2015构建报错:无法定位Java 6或7 SDK
我之前在Windows 7 64位系统上用VS2015 Enterprise构建项目时,也碰到过一模一样的棘手问题,试过你说的那些方法都没解决,后来折腾出几个针对性的方案,你可以挨个试试:
确认Xamarin路径指向JDK而非JRE:
打开Tools -> Options -> Xamarin -> Android Settings,确保Java Development Kit Location指向的是Java 6 32位的JDK根目录(比如C:\Program Files (x86)\Java\jdk1.6.0_45),而不是JRE文件夹。很多人容易选错成JRE,这会直接导致识别失败。手动修改32位注册表项:
Windows 64位系统上,32位程序会读取Wow6432Node分支的注册表。按下Win+R输入regedit打开注册表编辑器,找到:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Development Kit- 确保
CurrentVersion的值是1.6 - 检查
JavaHome的路径是否和你安装的32位JDK完全一致,不一致的话手动修改成正确路径。
- 确保
调整环境变量的优先级:
有时候系统里可能有其他版本的Java干扰,你可以:- 右键“计算机”→“属性”→“高级系统设置”→“环境变量”
- 在系统变量里设置
JAVA_HOME为C:\Program Files (x86)\Java\jdk1.6.0_45(替换成你的实际路径) - 把
%JAVA_HOME%\bin移到PATH变量的最前面,确保VS优先找到这个版本的Java - 一定要以管理员身份重启VS,权限不足可能导致VS读取不到最新的环境变量。
修复VS2015的Xamarin组件:
打开VS2015的安装程序(在控制面板的“程序和功能”里找到Microsoft Visual Studio Enterprise 2015,点击“更改”),选择“修改”,找到Xamarin相关的组件(比如Xamarin.Android),点击“修复”。有时候组件文件损坏会导致路径识别异常,修复后大概率能解决问题。用软链接匹配VS的查找路径:
查看构建日志里VS尝试查找Java SDK的具体路径,如果它找的路径和你实际安装的路径不匹配,比如日志显示它在找C:\Java\jdk1.6.0,而你的JDK在C:\Program Files (x86)\Java\jdk1.6.0_45,可以用管理员身份打开命令提示符,创建软链接:mklink /j C:\Java\jdk1.6.0 "C:\Program Files (x86)\Java\jdk1.6.0_45"这样VS就能找到它要的路径了。
内容的提问来源于stack exchange,提问作者Muge

