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

Flutter 2.5.0项目Android12/13崩溃:PendingIntent可变性问题求助

解决Android 12+上PendingIntent可变性导致的崩溃问题

针对你的Flutter 2.5.0项目遇到的崩溃问题,你可以按以下步骤逐一排查解决:

1. 升级核心依赖版本

Flutter 2.5.0对应的部分Android依赖还没适配Android 12的PendingIntent可变性要求,先把androidx.core库升级到1.7.0及以上版本——这个版本开始支持显式设置PendingIntent的可变性:

// 在app/build.gradle的dependencies中添加或修改
implementation 'androidx.core:core:1.7.0'

另外如果用了推送、Firebase这类依赖,也同步升级到适配API 31的版本,比如Firebase Messaging至少更到23.0.0以上。

2. 手动处理PendingIntent可变性(针对未适配的第三方库)

如果项目里的第三方插件没适配Android 12,你可以在原生代码里手动修正PendingIntent的创建逻辑:

  • 对于不需要修改内容的PendingIntent,用FLAG_IMMUTABLE标记:
PendingIntent pendingIntent = PendingIntent.getActivity(
    context, 
    0, 
    intent, 
    PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE
);
  • 要是确实需要修改Intent内容,再用FLAG_MUTABLE(注意仅必要时使用,避免安全风险):
PendingIntent mutablePendingIntent = PendingIntent.getActivity(
    context, 
    0, 
    intent, 
    PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_MUTABLE
);

如果是Flutter插件调用的PendingIntent,优先找插件的更新版本,或者给插件作者提适配需求。

3. 检查清单文件配置

确保AndroidManifest.xml里的目标SDK版本设为31或更高:

<uses-sdk 
    android:minSdkVersion="你的最低兼容版本" 
    android:targetSdkVersion="31" />

同时排查你新增的清单内容,确认没有权限、组件声明冲突的情况。

4. 升级Flutter SDK(推荐)

Flutter 2.5.0是比较早期的版本,后续3.0+版本已经针对Android 12做了全面适配,升级SDK能从根源减少这类兼容性问题:

flutter upgrade

升级后记得运行flutter pub get同步所有依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 04:35:20