node.js - “路径”参数必须是字符串类型。接收到的类型未定义 - Ionic 4 - 仅限 Windows
问题描述
我遇到了一个错误,我不知道它是如何发生的,但它阻止我在 PC 上开发......我可以在 Mac 上构建我的应用程序,但是当我在 Windows 机器上尝试时它失败了.
科尔多瓦构建 android --stacktrace
配置文件未定义请求在平台\android\undefined 未找到的更改,忽略配置文件未定义请求在平台\android\undefined 未找到的更改,忽略
“路径”参数必须是字符串类型。接收类型未定义
TypeError [ERR_INVALID_ARG_TYPE]:“路径”参数必须是字符串类型。接收类型未定义
在 validateString (internal/validators.js:112:11)
甚至在从 GIT 克隆的干净的 Windows 机器上也是如此。
$离子信息
离子:
离子 CLI:5.4.13 (\AppData\Roaming\npm\node_modules\ionic) 离子框架:@ionic/angular 4.11.7 @angular-devkit/build-angular:0.803.21 @angular-devkit/schematics:8.1.3 @angular/cli:8.3.20 @ionic/angular-toolkit:2.0.0
科尔多瓦:
Cordova CLI:9.0.0 (cordova-lib@9.0.1) Cordova 平台:android 8.1.0 Cordova 插件:cordova-plugin-ionic-keyboard 2.2.0,cordova-plugin-ionic-webview 4.1.3,(和 12其他插件)
效用:
科尔多瓦分辨率:0.8.1 本机运行:0.3.0
系统:
NodeJS:v12.14.0 (C:\Program Files\nodejs\node.exe) npm:6.13.4 操作系统:Windows 10
{
"name": "xyz1",
"version": "0.0.7",
"author": "Keni Barwick",
"homepage": "https://barwick.net/",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@angular/common": "~8.1.2",
"@angular/compiler": "~8.1.2",
"@angular/core": "~8.1.2",
"@angular/fire": "^5.2.1",
"@angular/forms": "~8.1.2",
"@angular/http": "^7.2.15",
"@angular/platform-browser": "~8.1.2",
"@angular/platform-browser-dynamic": "~8.1.2",
"@angular/router": "~8.1.2",
"@ionic-native/app-version": "^5.18.0",
"@ionic-native/core": "^5.18.0",
"@ionic-native/google-analytics": "^5.18.0",
"@ionic-native/health": "^5.18.0",
"@ionic-native/image-picker": "^5.18.0",
"@ionic-native/ionic-webview": "^5.18.0",
"@ionic-native/onesignal": "^5.18.0",
"@ionic-native/splash-screen": "^5.18.0",
"@ionic-native/status-bar": "^5.18.0",
"@ionic/angular": "^4.11.7",
"cordova-android": "^8.1.0",
"cordova-plugin-androidx": "^1.0.2",
"cordova-plugin-androidx-adapter": "^1.1.0",
"cordova-plugin-app-version": "^0.1.9",
"cordova-plugin-exitapp2": "^1.0.4",
"cordova-plugin-firebasex": "^7.0.1",
"cordova-plugin-google-analytics": "1.6.0",
"cordova-plugin-health": "^1.1.3",
"cordova-plugin-telerik-imagepicker": "^2.3.3",
"cordova-res": "^0.8.1",
"core-js": "^2.6.11",
"firebase": "^6.5.0",
"html-webpack-plugin": "^3.2.0",
"kr.co.joycorp.cordova.exitapp": "^1.0.2",
"ngx-pipes": "^2.6.0",
"npm": "^6.13.4",
"onesignal-cordova-plugin": "^2.8.1",
"rxjs": "^6.5.4",
"tslib": "^1.9.0",
"zone.js": "~0.9.1"
},
"devDependencies": {
"@angular-devkit/architect": "~0.801.2",
"@angular-devkit/build-angular": "^0.803.21",
"@angular-devkit/core": "~8.1.2",
"@angular-devkit/schematics": "~8.1.2",
"@angular/cli": "8.3.20",
"@angular/compiler": "~8.1.2",
"@angular/compiler-cli": "~8.1.2",
"@angular/language-service": "~8.1.2",
"@ionic/angular-toolkit": "~2.0.0",
"@ionic/lab": "2.0.10",
"@types/jasmine": "~3.3.8",
"@types/jasminewd2": "~2.0.3",
"@types/node": "~8.9.4",
"codelyzer": "^5.2.1",
"cordova-plugin-device": "^2.0.2",
"cordova-plugin-ionic-keyboard": "^2.2.0",
"cordova-plugin-ionic-webview": "^4.1.1",
"cordova-plugin-splashscreen": "^5.0.2",
"cordova-plugin-statusbar": "^2.4.2",
"cordova-plugin-whitelist": "^1.3.3",
"jasmine-core": "~3.4.0",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~4.1.0",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage-istanbul-reporter": "~2.0.1",
"karma-jasmine": "~2.0.1",
"karma-jasmine-html-reporter": "^1.5.1",
"protractor": "~5.4.0",
"ts-node": "~7.0.0",
"tslint": "~5.15.0",
"typescript": "~3.4.3"
},
"description": "An Ionic project",
"cordova": {
"plugins": {
"cordova-plugin-telerik-imagepicker": {},
"cordova-plugin-health": {
"HEALTH_READ_PERMISSION": "App needs read access",
"HEALTH_WRITE_PERMISSION": "App needs write access",
"GMS_VERSION": "16.0.1"
},
"cordova-plugin-whitelist": {},
"cordova-plugin-statusbar": {},
"cordova-plugin-device": {},
"cordova-plugin-splashscreen": {},
"cordova-plugin-ionic-webview": {
"ANDROID_SUPPORT_ANNOTATIONS_VERSION": "27.+"
},
"cordova-plugin-ionic-keyboard": {},
"kr.co.joycorp.cordova.exitapp": {},
"cordova-plugin-app-version": {},
"cordova-plugin-google-analytics": {},
"cordova-plugin-firebasex": {},
"cordova-plugin-androidx-adapter": {},
"onesignal-cordova-plugin": {}
},
"platforms": [
"android"
],
"browserslist": []
}
}
我已经更新了所有在 npm outdated 中显示为红色的插件,检查了很多 Stacks 的答案但无济于事......
解决方案
我知道我一创建帖子就会找到答案,哈哈
所以事实证明问题出在 config.xml 中,特别是以下内容;
<config-file parent="NSHealthShareUsageDescription" platform="ios">
<string>App needs read access</string>
</config-file>
<config-file parent="NSHealthUpdateUsageDescription" platform="ios">
<string>App needs write access</string>
</config-file>
我删除了上述内容,我试图理解为什么我会收到以下警告;
config file undefined requested for changes not found at platforms\android\undefined, ignoring
一旦我删除它,我就能够通过路径错误......奇怪吗?
推荐阅读
- python - 从给定数据框的一列的所有行中提取粗体字母
- sql - 如何查找只有一个值的列 - Postgresql
- python - 如何在python中标记构造线?
- android - 上传到 Google Play 不同的指纹
- java - 设置活动时出现 NullPointerException
- javascript - 在 Google 表格脚本中的大型非线性单元格范围上使用 setValue
- python - 用 Sublime Text 3 编写的 Python 代码无法运行
- regex - 从带有附加条件的字符串中提取一个 8 位数字
- node.js - 使用 MQTT 和 Javascript 从 Azure IoT 读取数据
- css - iOS 13.x Safari 深色模式