执行cordova run android时出现JAVA_HOME错误求助
我之前也碰到过完全一样的情况——明明JAVA_HOME已经指向JDK 1.8,Cordova却还是报错说版本不满足要求。给你几个亲测有效的排查和解决步骤:
先确认终端环境里的JAVA_HOME是否真正生效
有时候修改了~/.bashrc或者~/.zshrc这类配置文件后,没有重启终端或者执行source命令,配置不会即时生效。在当前终端里运行这两个命令验证:echo $JAVA_HOME java -version确保输出的
JAVA_HOME是/home/ronin/jdk1.8.0_161/,且java -version显示的版本确实是1.8.0_161。如果不对,执行source ~/.bashrc(或你对应的配置文件),之后再重新检查。重新添加Cordova Android平台
平台缓存偶尔会导致检测逻辑异常,试试移除现有平台再重新添加:cordova platform remove android # 注意选择和你Cordova版本兼容的Android平台版本,比如Android 8.1.0适配Cordova 9.x版本 cordova platform add android@8.1.0检查系统默认Java版本
即使你设置了JAVA_HOME,系统默认的Java可能是其他版本(比如OpenJDK)。运行以下命令切换到你安装的JDK:sudo update-alternatives --config java在弹出的选项列表里,选择对应
/home/ronin/jdk1.8.0_161/bin/java的序号,按回车确认即可。(最后手段)检查Cordova的检测脚本
如果前面的方法都没用,可以手动查看报错的检测脚本/home/ronin/Downloads/SyncApp/platforms/android/cordova/lib/check_reqs.js,找到检测JDK版本的代码块。看看是不是脚本里的版本判断正则表达式有问题,比如把1.8.0_161误判为低于1.8了。这种情况可以临时修改脚本里的判断逻辑,比如调整正则匹配规则。
内容的提问来源于stack exchange,提问作者Kaki Master Of Time

