Cordova执行requirements命令检查环境时崩溃,提示Android target未安装
我之前在配置Cordova Android环境时也碰到过完全一样的状况,结合你给出的错误信息,主要是两个问题导致的:Java的javax.xml.bind依赖缺失和Android Target未安装,下面给你一步步的解决方法:
1. 修复Java NoClassDefFoundError错误
这个错误大概率是因为你用了JDK 9或更高版本——从JDK 9开始,javax.xml.bind这个模块被移出了默认类路径。解决方式有两种:
方式一:切换回JDK 8
Cordova对Android构建目前还是推荐用JDK 8,操作步骤:
- 下载安装JDK 8
- 配置环境变量
JAVA_HOME指向JDK 8的安装目录 - 重启终端后再执行
cordova requirements
方式二:给JDK添加模块参数
如果不想切换JDK版本,可以在执行Cordova命令时临时添加模块加载参数:
_JAVA_OPTIONS=--add-modules java.xml.bind cordova requirements
也可以把这个参数设置成系统环境变量,这样后续所有Cordova命令都会自动生效。
2. 安装缺失的Android Target
错误提示里明确标注Android target: not installed,需要通过Android Studio完成安装:
- 打开Android Studio,点击顶部菜单栏的
Tools > SDK Manager - 切换到
SDK Platforms标签页,勾选你需要的Android版本(比如Cordova常用的Android 13 (API 33)或Android 14 (API 34)) - 同时切换到
SDK Tools标签页,确保勾选对应版本的SDK Build-Tools,点击Apply完成安装 - 安装完成后重启终端,再次执行
cordova requirements验证
最后附上你提供的错误输出供参考:
cordova requirements
Android Studio project detected
Requirements check results for android:
Java JDK: installed 1.8.0
Android SDK: installed true
Android target: not installed
cmd: Command failed with exit code 1
Error output: Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema at...
内容的提问来源于stack exchange,提问作者Lucas

