【问题标题】:Can not retrieve data from Hive after application restart应用程序重新启动后无法从 Hive 检索数据
【发布时间】:2021-09-01 16:21:31
【问题描述】:

一切正常,直到我重新启动应用程序(关闭应用程序并打开它)并且看不到以前保存的数据,但如果我检查框状态,它已打开并为空。我做错了吗?

  • 真机小米红米4A运行(实际出现问题 也适用于 Iphone 设备)
  • 在 Mac M1 上工作
  • Flutter (Channel stable, 2.2.2, on macOS 11.2 20D64 darwin-arm, 地区 ru)
  • 我在 github repo 中发现了“问题”,但没有任何用处

main.dart

void main() async {
  // init hive
  WidgetsFlutterBinding.ensureInitialized();
  await lds.init();
  // init app
  runApp(MyApp());
}

蜂巢初始化文件

Future<void> init() async {
  final appDocumentDirectory = await path.getApplicationSupportDirectory();
  Hive.init(appDocumentDirectory.path);

  // registering entities
  Hive.registerAdapter(ItemModelAdapter());
}

保存和加载功能

class ItemLocalDataSource {
  static const String BOX_ITEMS = 'item-models';

  Future<List<ItemModel>> getLocalItems() async {
    await Hive.openBox(BOX_ITEMS);
    final box = Hive.box(BOX_ITEMS);
    final items = box.get(0) as List<ItemModel>;
    return items;
  }

  Future<void> setLocalItems(List<ItemModel> items) async {
    await Hive.openBox(BOX_ITEMS);
    final box = Hive.box(BOX_ITEMS);
    box.put(0, items);
    print('saved $items');
  }
}

我在 pubspec.yaml 中使用的包版本

  # hive (local data storage)
  hive: ^1.4.4+1
dev_dependencies:
  flutter_test:
    sdk: flutter
  # hive adapter generator
  hive_generator: ^0.8.2
  # build runner
  build_runner:

【问题讨论】:

  • 您好,您解决了这个问题吗?我最近遇到它,似乎找不到解决方法

标签: flutter flutter-hive


【解决方案1】:

当我升级 Dart SDK 时,应用程序也引起了同样的问题。当我降级 Dart SDK 时,Hive 开始按预期工作。解决方案是降级 Dart SDK。我目前的 SDK 是:

Dart SDK version: 2.14.2 (stable) 

【讨论】:

  • 您好,如何更改 dart sdk 版本?
  • @Dean Villamia 我已经使用 github 回滚了我的文件,但不知道如何更改 dart sdk。您可以尝试更改 pubspec.lock 中的 sdks 部分,我记得更改此文件后它已经工作了。 sdks: dart: "&gt;=2.14.0 &lt;3.0.0" flutter: "&gt;=2.5.0应该是这样的
【解决方案2】:

这对我有用 https://blog.logrocket.com/handling-local-data-persistence-flutter-hive/

我认为由于某种原因模型没有处理 late 关键字? 如果我也想学习,请随时在 cmets 中纠正我:D

【讨论】:

    猜你喜欢
    • 2014-09-14
    • 1970-01-01
    • 1970-01-01
    • 2018-02-22
    • 2013-01-25
    • 1970-01-01
    • 2018-11-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多