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

升级compileSdkVersion至31后,Firebase后台/关闭状态推送失效求助

解决思路

1. 升级Firebase依赖版本

你当前使用的firebase-messaging:20.1.0版本未适配Android 12(API 31)的PendingIntent flag强制要求,这是导致崩溃的核心原因。需将firebase-messaging升级至21.0.0及以上版本(官方从该版本开始支持Android 12的相关规则),建议直接使用最新稳定版:

// 替换旧的firebase-messaging依赖
implementation 'com.google.firebase:firebase-messaging:23.4.0'

同时同步升级其他Firebase及Google Play服务依赖,避免版本冲突:

implementation 'com.google.firebase:firebase-analytics:21.3.0'
implementation 'com.google.firebase:firebase-auth:22.3.0'
implementation 'com.google.firebase:firebase-firestore:24.10.0'
implementation 'com.google.android.gms:play-services-location:21.2.0'

2. 检查自定义PendingIntent(如有)

如果你的ABCMessaging服务中自行创建了PendingIntent(比如通知点击跳转的Intent),需要手动添加对应flag:

  • 普通场景优先使用PendingIntent.FLAG_IMMUTABLE
  • 若需支持内回复、气泡交互等功能,使用PendingIntent.FLAG_MUTABLE

示例代码:

Intent jumpIntent = new Intent(this, TargetActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(
    this,
    0,
    jumpIntent,
    PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE // 添加强制flag
);

3. 确认Manifest配置有效性

你已在Manifest中正确设置ABCMessaging服务的android:exported="true",这符合Android 12及以上的要求,无需修改。确保Firebase相关组件能正常初始化即可。

4. 项目清理重建

执行Clean Project和Rebuild Project操作,清除应用缓存后重新测试推送功能。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 11:46:06