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

Flutter 2.5.x使用flutter_secure_storage 5.0.2读取数据空指针如何解决?

问题修复方案

问题根因

该空指针报错是flutter_secure_storage 5.0.2版本在Android平台的已知缺陷:插件未完成SharedPreferences实例初始化时,提前调用读/写方法就会触发该异常。

修复步骤

方案1:Android端配置调整+调用逻辑优化(适配当前版本无需换包)

  • 修改Android清单配置
    打开android/app/src/main/AndroidManifest.xml,在application节点新增2个属性,关闭系统自动备份规则避免旧存储数据冲突:
<application
    android:allowBackup="false"
    android:fullBackupContent="false"
    <!-- 其余原有配置保持不变 -->
    >
  • 读写操作增加异常捕获
    修改封装的SecureStorageUtil.getString方法,捕获初始化未完成的异常,兼容异常场景返回默认值:
static FlutterSecureStorage _preferences = FlutterSecureStorage();

static Future<String?> getString (String key, {String? defValue}) async {
  try {
    final result = await _preferences.read(key: key);
    return result ?? defValue;
  } on PlatformException catch (_) {
    // 插件未初始化完成时直接返回默认值
    return defValue;
  }
}
  • 调整调用时机:不要在Flutter引擎初始化完成前调用flutter_secure_storage的读写方法,尽量保证在runApp()执行完成后再触发相关读写逻辑。

方案2:版本适配修复

如果方案1无效,可直接升级flutter_secure_storage到5.1.0及以上版本,该版本官方已经修复了Android端SharedPreferences空指针的问题,执行命令:

flutter pub upgrade flutter_secure_storage

如果受环境限制不能升级,也可以降级到4.2.1稳定版本,该版本无上述初始化缺陷。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 04:57:03