升级至Android API 31后Flutter本地通知报错求助
解决Flutter本地通知API 31 PendingIntent报错问题
核心原因
你遇到的错误是因为Flutter本地通知库的旧版本未适配Android 12(API 31)对PendingIntent的强制flag要求——虽然你自身代码没写PendingIntent,但库内部创建通知时会自动生成并使用它,旧版本库没有添加FLAG_IMMUTABLE或FLAG_MUTABLE参数,触发了系统强制校验。
具体修复步骤
升级Flutter本地通知库到兼容API 31的版本
打开项目根目录的pubspec.yaml,找到flutter_local_notifications依赖项,将版本更新到最新稳定版(至少需^9.0.0及以上,可直接参考pub仓库的最新版本号)。更新后执行:flutter pub get清理冗余配置
- 移除之前自行添加的非官方要求的Java/Kotlin依赖,避免版本冲突;
- 确认
AndroidManifest.xml中仅保留库官方文档指定的接收器配置,自定义的多余接收器可删除; exported属性只需给主Activity和库要求的组件设置,无需额外添加到其他无关组件。
彻底清理并重建项目
执行以下命令清除旧编译缓存,避免残留文件干扰:flutter clean flutter pub get flutter run
额外排查方向
如果升级库后仍报错,可通过日志定位具体抛出错误的组件,检查是否有其他第三方依赖也在创建未适配的PendingIntent,针对性升级对应依赖即可。
内容的提问来源于stack exchange,提问作者Gaurangi
相关产品推荐
相关产品推荐

