“块”参数必须是字符串或缓冲区类型之一。收到的类型对象

时间:2019-05-27 14:32:50

标签: angular ionic-framework ionic3

我正在尝试运行命令以运行ionic 3 Command提示符。我使用了cordova fcm插件。

ionic cordova运行android

错误:

  

“块”参数必须是字符串或缓冲区类型之一。收到类型对象

离子:

  

ionic(Ionic 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)科尔多瓦   平台:android 7.1.4 Cordova插件:否   列入白名单的插件(共25个插件)

系统:

  

NodeJS:v10.15.1   (/Users/sivakumarv/.nvm/versions/node/v10.15.1/bin/node)npm:   6.4.1 OS:macOS High Sierra Xcode:Xcode 10.1 Build 10B61

环境变量:

  

ANDROID_HOME:C:\ Users \ pkhon \ AppData \ Local \ Android \ Sdk

2 个答案:

答案 0 :(得分:1)

伴随着上述https://stackoverflow.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

答案 1 :(得分:0)

该插件中存在一个错误,可以解决此问题:转到:

  

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
  •   

有关更多信息,您可以检查此错误here