“块”参数必须是字符串或缓冲区类型之一。接收到的类型对象
Posted
技术标签:
【中文标题】“块”参数必须是字符串或缓冲区类型之一。接收到的类型对象【英文标题】:The "chunk" argument must be one of type string or Buffer. Received type object 【发布时间】:2019-10-13 03:32:40 【问题描述】:我正在尝试运行命令来运行我的 ionic 3 命令提示符。我用的是cordova fcm插件。
离子科尔多瓦运行安卓
错误:
离子:
离子(离子 CLI):4.10.1(/usr/local/lib/node_modules/ionic) 离子框架:离子角 3.6.0 @ionic/app-scripts:2.1.4
科尔多瓦:
cordova (Cordova CLI) : 8.1.2 (cordova-lib@8.1.1) Cordova 平台:android 7.1.4 Cordova 插件:无 列入白名单的插件(总共 25 个插件)
系统:
NodeJS:v10.15.1 (/Users/sivakumarv/.nvm/versions/node/v10.15.1/bin/node) npm: 6.4.1 操作系统:macOS High Sierra Xcode:Xcode 10.1 构建版本 10B61
环境变量:
ANDROID_HOME : C:\Users\pkhon\AppData\Local\Android\Sdk
【问题讨论】:
【参考方案1】:插件有bug,解决方法:转到:
plugins/cordova-plugin-fcm/scripts/fcm_config_files_process.js
现在像这样更改文件:
// change
var strings = fs.readFileSync("platforms/android/res/values/strings.xml").toString();
// to
var strings = fs.readFileSync("platforms/android/app/src/main/res/values/strings.xml").toString();
// AND
//change
fs.writeFileSync("platforms/android/res/values/strings.xml", strings);
//to
fs.writeFileSync("platforms/android/app/src/main/res/values/strings.xml", strings);
之后,将google-services.json
文件复制到以下目录:
platforms/android/google-services.json platforms/android/app/google-services.json
更多信息可以查看这个bughere
【讨论】:
是的..它有效。谢谢。 老兄,它起作用了,但是这个文件是如何改变的,或者我的意思是这个错误是如何出现的 我在构建时遇到了 gradlew EACCES 错误。我做了chmod 755 gradlew
,但现在出现其他错误不起作用。
var strings = fs.readFileSync(
在第 62 行,fs.writeFileSync
第 78 行【参考方案2】:
连同上面提到的变化https://***.com/a/56330922/5698147 由 Asim Hashmi ,还可以手动搜索并将 firebase 版本替换为
firebase-core:16.0.3
firebase-messaging:17.6.0
在
android/build.gradle android/project.properties android/app/build.gradle然后运行ionic cordova build android --prod
【讨论】:
以上是关于“块”参数必须是字符串或缓冲区类型之一。接收到的类型对象的主要内容,如果未能解决你的问题,请参考以下文章
“路径”参数必须是字符串类型。接收到的类型未定义 - Ionic 4 - 仅限 Windows
Cordova:无效数据,块必须是字符串或缓冲区,而不是对象
无效数据,块必须是字符串或缓冲区,而不是对象 - 离子和火力