欢迎加入开源鸿蒙跨平台社区: https://openharmonycrossplatform.csdn.net

Flutter鸿蒙化shared_preferences指南

摘要:如果你正在做 Flutter for OpenHarmony 迁移,这个库非常适合作为“第一块试金石”。本文基于 OpenHarmony TPC 仓库里的标准接入方式,完整演示 shared_preferences 在鸿蒙工程中的接入、验证与排障。重点不是“命令背下来”,而是把“为什么会报错、怎么快速定位”讲清楚。最后附运行截图位置与结构化数据,便于投稿与检索。

这篇文章能帮你解决什么

  1. 按仓库文档把 shared_preferences 正确接进鸿蒙项目。
  2. 快速确认插件是否真的注册生效,而不是“能编译但不工作”。
  3. 避开最常见的资源、签名、运行时快照类问题。

官方来源与参考

  • OpenHarmony TPC Flutter 仓库(AtomGit):https://atomgit.com/openharmony-tpc/flutter_packages
  • shared_preferences OHOS 目录(AtomGit):https://atomgit.com/openharmony-tpc/flutter_packages/tree/master/packages/shared_preferences/shared_preferences_ohos
  • shared_preferences(pub.dev):https://pub.dev/packages/shared_preferences
  • OpenHarmony 文档中心:https://docs.openharmony.cn/
  • Flutter 文档中心:https://docs.flutter.dev/
  • DevEco Studio 指南:https://developer.huawei.com/consumer/cn/deveco-studio/

按仓库文档走的最小接入步骤

根据仓库 README 的思路,先保证依赖来源明确、路径正确。

1) 在 pubspec.yaml 增加依赖

dependencies:
  shared_preferences:
    git:
      url: https://atomgit.com/openharmony-tpc/flutter_packages.git
      path: packages/shared_preferences/shared_preferences

2) 拉取依赖

flutter pub get

3) 使用最小验证代码

import 'package:shared_preferences/shared_preferences.dart';

Future<void> saveCounter() async {
  final prefs = await SharedPreferences.getInstance();
  final old = prefs.getInt('counter') ?? 0;
  await prefs.setInt('counter', old + 1);
}

Future<int> loadCounter() async {
  final prefs = await SharedPreferences.getInstance();
  return prefs.getInt('counter') ?? 0;
}

我在实操里最关键的检查点

  1. 插件注册是否包含 SharedPreferencesPlugin
  2. 工程资源中是否包含完整 Flutter 运行时资产。
  3. 包名、签名、启动配置是否为同一组。

经验结论:shared_preferences 本身不复杂,问题通常都出在工程一致性,而不是 API 调用。

常见问题排查表

问题 现象 解决思路
插件看似可用但不存储 写入后重启丢数据 检查平台注册器和依赖路径
启动就闪退 日志出现 VM snapshot invalid 补齐 rawfile 下 flutter_assets 与快照文件
构建通过但无法拉起 ability 或包名报错 校验 bundle/module/ability 三项一致
签名阶段失败 SignHap 报错 修正 build-profile 中签名材料与包名绑定

运行成功截图

在这里插入图片描述

验收建议

  1. 页面可正常进入并可点击。
  2. 写入后重启数据仍在。
  3. 日志无 Dart VM 初始化错误。
  4. 截图能清晰体现“前后状态变化”。

结论

shared_preferences 跑通后,你其实已经拿到了鸿蒙化插件接入的核心方法:先对齐仓库文档步骤,再验证注册链路,最后用日志闭环。后续迁 path_providerlocal_auth,基本都能复用这套流程。


Schema.org 结构化数据(BlogPosting)

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "headline": "Flutter鸿蒙化shared_preferences指南",
  "description": "基于OpenHarmony TPC仓库文档,实战接入shared_preferences并完成运行验证与排障。",
  "author": {
    "@type": "Person",
    "name": "OpenHarmony跨平台开发者"
  },
  "publisher": {
    "@type": "Organization",
    "name": "OpenHarmony跨平台社区"
  },
  "datePublished": "2026-04-02",
  "dateModified": "2026-04-02",
  "mainEntityOfPage": "https://openharmonycrossplatform.csdn.net",
  "keywords": ["开源鸿蒙", "Flutter for OpenHarmony", "shared_preferences", "AtomGit", "三方库适配"],
  "inLanguage": "zh-CN"
}
</script>
Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐