尝试初始化 Hive 时出现奇怪的错误

问题描述

错误Unhandled Exception: HiveError: You need to initialize Hive or provide a path to store the Box.

基本上我的依赖中有这些,所以一切都应该很好。

  hive: ^1.4.4+1
  hive_Flutter: ^0.3.1
  path_provider: ^1.6.27

我也有import 'package:hive/hive.dart';import 'package:path_provider/path_provider.dart';文件

所以我只有

void doSomething() async {
    final documentDirectory = await getApplicationDocumentsDirectory();
    Hive.init(documentDirectory.path);
  }

打电话。

我不明白。我想我做的一切都是正确的。如果您需要其他东西,请告诉我。

解决方法

打开终端写入 扑扑酒吧得到 然后它会同步并工作

,

目前path_provider不支持WEB。您可以在此处查看:path_provider

您必须为 WEB 使用另一个目录。如果您使用 BLOC 作为状态管理,您可以执行以下操作:

if (!kIsWeb) {
    // if android or tablet
    HydratedBloc.storage = await HydratedStorage.build(
        storageDirectory: await getApplicationDocumentsDirectory(),);
} else {
    // if web
    HydratedBloc.storage = await HydratedStorage.build(
        storageDirectory: HydratedStorage.webStorageDirectory,);
}