安装插件时出现以下错误。
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
cordova --version 8.1.2(cordova-lib@8.1.1)
似乎
pluginHandlers.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);
将其作为字符串处理。如何解决此问题?
plugin.xml中的以下任何资源文件标记都会阻止插件安装。
<resource-file src="src/android/app/src/main/assets/FAsolid.ttf" target-dir="assets/FAsolid.ttf"/>
答案 0 :(得分:1)
我遇到了类似的问题,结果我不得不替换
<resource-file src="..." target-dir="assets/..."/>
到
<source-file src="..." target-dir="..."/>
答案 1 :(得分:0)
根据我的发现,只要文件夹npm正在管理的权限有问题并且ubuntu上有很多位置,就会引发该异常:/usr/local/lib
,/usr/local/bin
,/usr/local/share
,{{ 1}},~/.npm
甚至更多。如果您要在环境本身中执行构建,则有机会获得缺少权限的相关文件夹。
但是,在玩了很多之后,我发现实际的问题出在~/.cordova
下的util.js
文件,问题出在以下行:/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/util.js
仅在global_config_path = path.join(HOME, '.cordova');
环境变量不存在的情况下执行此代码。因此,我刚刚添加了它:CORDOVA_HOME
,但异常消失了。
希望能对某人有所帮助。