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

使用Cordova CLI7.1.0编译项目时出现AbstractSafeParcelable访问错误

解决Cordova FCM插件编译错误:找不到AbstractSafeParcelable类

这个错误的核心原因是Cordova Android 6.3.0的依赖版本过旧,和你使用的FCM插件所需的Google Play Services/Firebase库版本不兼容——AbstractSafeParcelable是Google Play Services基础库中较新的类,旧版Cordova Android默认依赖的Play Services版本根本没有这个类,所以编译时会报错。

下面是几种可行的解决办法,按推荐程度排序:

1. 升级Cordova Android平台(最推荐)

Cordova Android 6.3.0是2017年的旧版本,早已停止维护,升级到稳定的新版本能从根源上解决依赖冲突问题:

  • 先移除旧的Android平台:
    cordova platform remove android
    
  • 添加兼容的新版平台(推荐8.1.0,这个版本和你用的FCM插件兼容性较好):
    cordova platform add android@8.1.0
    
  • 重新安装FCM插件:
    cordova plugin add cordova-plugin-fcm-with-dependency-updated
    
  • 最后重新编译项目:
    cordova build android
    

2. 不升级平台,手动强制统一依赖版本

如果暂时不想升级平台,可以通过Gradle配置强制指定兼容的Play Services/Firebase版本:

  • 进入你的项目的cordova/platforms/android目录,创建一个build-extras.gradle文件(注意:每次移除Android平台后这个文件会被删除,需要重新创建)
  • 在文件中添加以下内容,强制统一依赖版本:
    dependencies {
        compile 'com.google.android.gms:play-services-base:17.6.0'
        compile 'com.google.firebase:firebase-messaging:20.3.0'
    }
    configurations.all {
        resolutionStrategy {
            force 'com.google.android.gms:play-services-base:17.6.0'
            force 'com.google.firebase:firebase-messaging:20.3.0'
        }
    }
    
  • 回到项目根目录,重新编译:
    cordova build android
    

3. 指定FCM插件的兼容旧版本

如果上面两种方法都有问题,可以尝试安装该FCM插件的旧版本,适配Cordova Android 6.3.0:

cordova plugin add cordova-plugin-fcm-with-dependency-updated@7.8.0

这个版本是专门适配旧Cordova Android平台的,能避免大部分依赖冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:09:49