You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac上Ionic集成cordova-plugin-fcm报错:Invalid data, chunk must be a string or buffer, not object

解决Cordova 8.0.0 + Android 6.4.0添加cordova-plugin-fcm时的「Invalid data, chunk must be a string or buffer, not object」报错

我之前帮不少开发者排查过这个一模一样的错误,结合你的环境配置(Mac、Cordova 8.0.0、Android 6.4.0,仅Android平台,google-services.json已放置在根目录),这个问题大概率是插件版本不兼容、gradle配置冲突,或者google-services.json的处理逻辑出了问题。给你几个针对性的解决步骤,按顺序试试:

1. 降级cordova-plugin-fcm到适配旧版Cordova的版本

Cordova 8.0.0算是比较老的版本了,新版的cordova-plugin-fcm已经不再对它做兼容适配。建议你安装cordova-plugin-fcm@2.1.2这个稳定版本,它在Cordova 8.x环境下表现很好:

# 先卸载已安装的插件(如果之前装过)
cordova plugin remove cordova-plugin-fcm
# 安装指定兼容版本
cordova plugin add cordova-plugin-fcm@2.1.2

2. 调整google-services.json的放置路径

虽然你把文件放在了项目根目录,但旧版的fcm插件需要把它放到Android平台的指定目录下,同时要确保文件配置正确:

  • 复制根目录的google-services.json到platforms/android/app/src/main/目录下
  • 打开文件检查package_name字段,必须和你config.xml里<widget id="你的项目ID">的内容完全一致,大小写都不能错

3. 修复Gradle依赖版本冲突

Cordova Android 6.4.0默认的gradle版本和fcm插件依赖的Google Services版本不匹配,这会导致处理json文件时出现类型错误。手动修改gradle配置:

  1. 打开platforms/android/build.gradle,找到dependencies块,确保google-services的版本是3.2.1(适配旧版Cordova):
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.3'
        classpath 'com.google.gms:google-services:3.2.1'
    }
    
  2. 打开platforms/android/app/build.gradle,确认文件末尾有这一行,如果没有就加上:
    apply plugin: 'com.google.gms.google-services'
    

4. 清理缓存并重新构建项目

旧的构建缓存很可能残留了错误配置,清理后重新构建能解决不少奇怪的问题:

# 清理Cordova构建缓存
cordova clean
# 移除并重新添加Android平台(确保平台配置干净)
cordova platform remove android
cordova platform add android@6.4.0
# 再次安装指定版本的fcm插件
cordova plugin add cordova-plugin-fcm@2.1.2

对了,你提到「最奇怪的是我的项目...」,如果还有其他异常细节(比如之前是否成功装过插件、有没有其他冲突的插件等),可以补充出来,这样能更精准地定位问题。

内容的提问来源于stack exchange,提问作者AppFirl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 09:08:15