执行ionic build android报JDK 1.8.x校验失败问题求助
核心问题为旧版本Cordova Android平台的JDK版本校验脚本存在bug,错误识别出512.0.0的异常版本号,并非实际安装的JDK版本不符合要求,可按以下步骤排查修复:
校验本地Java环境配置有效性
打开系统自带cmd终端,依次执行以下命令:java -version javac -version where java确认前两条命令输出均为
1.8.0_xxx格式的JDK 8版本号,且where java输出的第一条路径为你配置的JAVA_HOME对应的bin目录路径。如果第一条路径不是目标JDK路径,需打开系统环境变量编辑页面,将%JAVA_HOME%\bin移动到PATH变量的最顶部,保存后重启终端再次验证。修复Cordova版本检测逻辑
512.0.0的错误版本号是旧版本Cordova安卓平台的已知问题,有两种修复方案:- 升级Cordova Android平台(推荐)
执行以下命令重装安卓平台:
ionic cordova platform rm android ionic cordova platform add android@9.1.09.1.0及以上版本的Cordova Android已修复该版本检测问题,可正常适配JDK 8校验规则。
2. 手动修改校验脚本(临时解决,无需重装平台)
打开报错提示的脚本文件E:\QSET\user_app\platforms\android\cordova\lib\check_reqs.js,找到check_java函数中的版本判断逻辑,将校验JDK版本是否为1.8.x的判断条件直接注释,或修改版本解析正则为以下正确格式:var versionPattern = /1\.8\.0(_\d+)?/;修改保存后重新执行打包命令即可。
- 升级Cordova Android平台(推荐)
排除终端环境变量缓存问题
如果你使用的是VS Code、IDEA等IDE的内置终端,可能存在环境变量缓存,建议直接用系统自带的cmd终端执行打包命令,或重启IDE后再尝试。
提示:报错末尾的taskkill进程找不到的错误属于打包失败后的附带清理错误,主问题解决后该提示会自动消失,不需要单独处理。
内容的提问来源于stack exchange,提问作者BHUSHAN KAMBLE

