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

Flutter使用flutter_local_notifications调用zonedSchedule触发PendingIntent异常

解决Flutter Local Notifications的PendingIntent FLAG异常

问题原因

你的应用目标SDK版本为31+(Android 12及以上),根据Android系统要求,创建PendingIntent时必须指定FLAG_IMMUTABLE或FLAG_MUTABLE标记。而你使用的flutter_local_notifications: ^8.1.1+1版本较旧,未适配该系统要求,导致调用zonedSchedule时抛出异常。

解决方案

1. 升级flutter_local_notifications依赖

将pubspec.yaml中的依赖版本更新至最新稳定版(至少9.0.0以上,推荐最新版):

flutter_local_notifications: ^16.1.0

执行命令更新依赖:

flutter pub get

2. 修改通知初始化配置

在两处初始化AndroidInitializationSettings的地方,添加pendingIntentMutability参数,指定为PendingIntentMutability.immutable(若无需可变PendingIntent,推荐使用该值;若需支持内联回复等功能则用mutable):

(1)NotificationsHelper.dart的init方法

static Future<void> init() async {
    final AndroidInitializationSettings initializationSettingsAndroid =
        AndroidInitializationSettings('app_icon',
            pendingIntentMutability: PendingIntentMutability.immutable);
    final IOSInitializationSettings initializationSettingsIOS =
        IOSInitializationSettings();
    final InitializationSettings initializationSettings =
        InitializationSettings(
            android: initializationSettingsAndroid,
            iOS: initializationSettingsIOS);
    await flutterLocalNotificationsPlugin.initialize(initializationSettings);
}

(2)main.dart中的初始化代码

final initializationSettingsAndroid =
    AndroidInitializationSettings('@mipmap/ic_launcher',
        pendingIntentMutability: PendingIntentMutability.immutable);

final InitializationSettings initializationSettings = InitializationSettings(
    android: initializationSettingsAndroid,
  );

await flutterLocalNotificationsPlugin.initialize(
    initializationSettings,
);

3. 确认targetSdkVersion配置(可选)

确保app/build.gradle中的targetSdkVersion为31或更高,若使用Flutter默认配置,可手动指定:

defaultConfig {
    // ...其他配置
    targetSdkVersion 33
}

4. 清理并重新运行项目

执行以下命令清理缓存后重新运行:

flutter clean
flutter run

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 05:35:10