执行cordova clean/prepare后出现colors.xml缺失及参数类型错误
Cordova Android 执行clean + prepare时触发类型错误问题
触发错误的操作
执行以下命令时出现错误:
cordova clean android cordova prepare android
错误信息
TypeError [ERR_INVALID_ARG_TYPE]: The "code" argument must be of type number. Received type string ('ENOENT') at process.set [as exitCode] (node:internal/bootstrap/node:123:9) at /usr/lib/node_modules/cordova/bin/cordova:32:22
问题定位
经排查,错误与config.xml中的以下配置行直接相关:
<resource-file src="res/values/colors.xml" target="app/src/main/res/values/colors.xml" />
执行失败后检查发现,目标路径下的colors.xml文件缺失:
root@aaa08cb7ed25:/opt/src/testcordovabug/testcordovabug# ls -la platforms/android/app/src/main/res/values/ total 16 drwxr-xr-x 2 root root 4096 May 17 00:48 . drwxr-xr-x 17 root root 4096 May 16 23:55 .. -rw-r--r-- 1 root root 237 May 16 23:55 strings.xml -rw-r--r-- 1 root root 602 May 16 23:55 themes.xml
临时处理方式
移除上述<resource-file>配置行后,执行以下命令可使prepare操作成功完成(此时colors.xml会正常生成):
cordova platform remove android cordova platform add android@12.0.1 cordova clean android cordova prepare android
由于业务需要自定义颜色值,该配置完全符合官方文档推荐,但当前行为不符合预期,目前只能通过避免执行cordova clean android命令来临时规避问题。
环境版本
- cordova: 12.0.0 (cordova-lib@12.0.1)
- cordova-android: 12.0.1
- node: v20.5.1
内容的提问来源于stack exchange,提问作者phatpaul
相关产品推荐
相关产品推荐

