Flutter Hive - 如何定位 box 文件

mav*_*v91 6 dart flutter flutter-hive

这可能是显而易见的,但有人可以告诉我如何使用 Android Studio 在 Flutter 应用程序中初始化 Hive 后找到我的 Hive Box 文件吗?

我已遵循此处的文档 - https://docs.hivedb.dev/#/README - 我的基本实现工作正常,但我找不到 Box 文件或任何与此相关的 Hive 文件的存储位置。

我希望能够在 Android Studio 中找到我的 Box(数据库)在我的项目中的位置,以便我可以查看数据库的内容并确认它存在于正确的位置

这是我的代码,我在其中初始化 Hive 并打开一个盒子

void main() async {
  // Initialise Hive
  await Hive.initFlutter('hiveusersfolder');
  runApp(MyApp());
  var box = await Hive.openBox('hiveusersfolder');
  box.put('name', 'MyName');
  print('Name: ${box.get('MyName')}');
}
Run Code Online (Sandbox Code Playgroud)

上面的代码存在于我的 main.dart 文件中

我在 Ubuntu 上使用 Android Studio。

*编辑更新

我已经找到了 Box 存储位置的假定路径,但是当使用 Android Studio Navigate > Search Everywhere 时 - 在此文件夹/路径中找不到任何内容。初始化我的数据库并将用户添加到框中后,我应该能够看到一个框文件并查看用户,就像使用任何其他类型的数据库一样,不是吗?

这是路径 /data/user/0/myappv1.myappv1/app_flutter

我尝试了无效缓存+重新启动,但仍然没有任何结果

如果问题出在 Android Studio 搜索上,如何在 Ubuntu 文件资源管理器上访问上述路径?或者使用命令行?

小智 6

文档中明确指出

/// Initializes Hive with the path from [getApplicationDocumentsDirectory].
  ///
  /// You can provide a [subDir] where the boxes should be stored.
  Future<void> initFlutter([String? subDir]) async {
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


mav*_*v91 1

通过从“文件”>“项目结构”中选择项目 SDK 解决了此问题

然后,我必须确保我使用的 Android 虚拟设备的系统映像不支持 Google Play 商店(我认为使用 Android 8 的 Pixel 2XL,只是选择了没有 Play 的任何东西)。

存在一个问题,如果您使用加载了 Google Play 的 AVD,您将无法访问 Hive 放置 .hive 文件的默认文件夹

默认情况下,至少在使用 Flutter 的 Android 上,您的 Hive 文件似乎进入此路径 - /data/user/0/yourapplicationv1.yourapplicationv1/app_flutter

希望这可以帮助任何遇到同样问题的人

  • 找到 .hive 文件后,如何打开它?我们可以使用什么软件/工具? (3认同)