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

Targeting S+版本FCM通知PendingIntent参数异常求助

解决方案

从错误栈可以明确,问题出在Firebase Messaging SDK内部的CommonNotificationBuilder类创建PendingIntent时,未指定FLAG_IMMUTABLE或FLAG_MUTABLE标志——你在自定义FCMService中设置的标志只对自己创建的PendingIntent生效,无法覆盖SDK内部的实现。

你的项目当前使用的firebase-bom:26.8.0对应的Firebase Messaging版本是21.0.1,这个版本尚未适配Android 12(API 31)及以上系统对PendingIntent的强制标志要求,具体修复步骤如下:

  • 升级Firebase BOM版本
    将firebase-bom依赖升级到至少30.0.0的稳定版本(建议使用最新稳定版),修改Gradle配置:

    implementation("com.google.firebase:firebase-bom:30.0.0") // 可替换为更高兼容版本
    

    Firebase BOM(物料清单)会自动同步所有Firebase依赖的版本到兼容Android 12+的版本,其中Firebase Messaging会更新至内部已正确添加FLAG_IMMUTABLE的版本。

  • 同步并重建项目
    点击Gradle面板的「Sync Now」同步配置,然后执行「Clean Project」和「Rebuild Project」清除旧编译缓存,确保新依赖生效。

  • 强制指定版本(可选)
    如果升级BOM后仍存在版本冲突问题,可以直接强制指定Firebase Messaging的版本:

    implementation("com.google.firebase:firebase-messaging-ktx:23.0.0")
    

    23.0.0及以上版本的Firebase Messaging已修复该PendingIntent标志问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 23:37:49