安装插件时出现以下错误。
Installing "cordova-plugin-canvas" for android
Error during processing of action! Attempting to revert...
Failed to install 'cordova-plugin-canvas': TypeError [ERR_INVALID_ARG_TYPE]: Uh oh!
The "path" argument must be of type string. Received type undefined
at assertPath (path.js:39:11)
at Object.join (path.js:1155:7)
at install (Users/xx/yy/zz/platforms/android/cordova/lib/pluginHandlers.js:61:29)
at ActionStack.process (/Users/xx/yy/zz/node_modules/cordova-common/src/ActionStack.js:56:25)
at PluginManager.doOperation (/Users/xx/yy/zz/node_modules/cordova-common/src/PluginManager.js:114:20)
at PluginManager.addPlugin (/Users/xx/yy/zz/node_modules/cordova-common/src/PluginManager.js:144:17)
at /Users/xx/yy/zz/platforms/android/cordova/Api.js:212:74
at _fulfilled (/Users/xx/yy/zz/node_modules/q/q.js:854:54)
at /Users/xx/yy/zz/node_modules/q/q.js:883:30
at Promise.promise.promiseDispatch (/Users/xx/yy/zz/node_modules/q/q.js:816:13)
Uh oh!
The "path" argument must be of type string. Received type undefined
科尔多瓦 --版本 8.1.2 (科尔多瓦-lib@8.1.1(
似乎在plugin处理程序.js line18
导入模块
var path = require('path');
但在line 61
'resource-file': {
install: function (obj, plugin, project, options) {
var dest = path.join('app', 'src', 'main', obj.target);
将其视为字符串。如何解决此问题?
插件中的任何资源文件标签.xml都会阻止插件安装。
<resource-file src="src/android/app/src/main/assets/FAsolid.ttf" target-dir="assets/FAsolid.ttf"/>
我遇到了类似的问题,结果我不得不替换
<resource-file src="..." target-dir="assets/..."/>
自
<source-file src="..." target-dir="..."/>
根据我的发现,每当 npm 管理的文件夹的权限出现问题并且 ubuntu 上有许多位置时,就会抛出此异常:/usr/local/lib
、/usr/local/bin
、/usr/local/share
、~/.npm
、~/.cordova
甚至更多。如果要在环境本身中执行构建,则有机会获取缺少权限的相关文件夹。
然而,在玩了很多之后,我发现实际问题出在/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/util.js
下util.js
文件,问题出在以下行:global_config_path = path.join(HOME, '.cordova');
此代码仅在环境变量不存在的情况下执行CORDOVA_HOME
。所以我刚刚添加了它:export CORDOVA_HOME="~/.cordova"
,例外消失了。希望它能帮助某人。