флаттер, открывающий ящик Hive, выдает ошибку - говорит, что ящик не найден, вы забыли вызвать Hive openbox ()

У меня есть класс, в котором я занимаюсь настройкой graphql и настройкой куста. Вот класс -

class GraphQLConfiguration {
  ValueNotifier<GraphQLClient> client = new ValueNotifier<GraphQLClient>(
    GraphQLClient(
      cache:
      GraphQLCache(store: HiveStore(Hive.box(HiveStore.defaultBoxName))),
      link: HttpLink('http://localhost:4000/graphql/',),
    ),
  );
  GraphQLConfiguration()  {
    initializeHive();
  }
  void initializeHive() async {
    await initHiveForFlutter(); // or await initHiveForFlutter();
    await Hive.openBox('bolBox');
  }
}

Теперь я инициализирую этот класс в основном методе Flutter —

Future main() async {
   GraphQLConfiguration graphql = new GraphQLConfiguration();
}

Когда я запускаю этот код, я получаю это сообщение об ошибке -

Ошибка - Необработанное исключение: HiveError: Ящик не найден. Вы забыли вызвать Hive.openBox()?

Я также следил за этим сообщением Box not found. Вы забыли вызвать Hive.openBox()?, не помогло.


person Sumchans    schedule 18.06.2021    source источник


Ответы (1)


Инициализируйте Hive, назначив ему домашний каталог с помощью path_provider.

final Directory appDocDir = await getApplicationDocumentsDirectory();
Hive.init(appDocDir.path);

затем откройте коробку

await Hive.openBox('bolBox');
person Hemal    schedule 18.06.2021
comment
Я все еще получаю ту же ошибку - person Sumchans; 19.06.2021