错误: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);
}
叫。
我不明白。我想我做的都对了。如果你还需要什么就告诉我。
8条答案
按热度按时间svujldwt1#
Hive在Android或iOS上运行时需要初始化,因此您可以使用如下函数:
您需要导入path_provider才能访问
getApplicationDocumentsDirectory()
x6492ojm2#
在flutter应用程序的主函数上尝试以下代码:
uqjltbpv3#
目前,path_provider不支持WEB你可以在这里看到:path_provider。
您必须使用另一个目录来访问WEB。如果你使用BLOC作为状态管理,你可以这样做:
7ivaypg94#
我得到这个错误是因为一个错字:
应该是
vdgimpew5#
我猜你得到这个问题是因为你没有等待
initFlutter
。hgncfbus6#
我认为你应该等待你的init方法。
z18hc3ub7#
只要遵循这些步骤,问题就会得到解决。导入这两个包
然后使用hive
jvidinwx8#
实际上,您不需要使用HydratedStorage在Web上初始化Hive:
如果你在Web上使用Flutter,你不需要初始化Hive,也不需要提供一个路径到box,只有当你在移动的上使用它。