Получение "NoSuchMethodError:" элемент "получателя был вызван при значении null". при использовании build_runner

Я новичок в флаттере, поэтому дайте мне знать, если кому-то понадобится дополнительная информация. Я пытался использовать Hive с моим приложением Flutter. Я хочу создать собственный адаптер для написанного мной класса под названием Product. Когда я запускаю "flutter packages pub run build_runner build", я получаю вот что:

NoSuchMethodError: The getter 'element' was called on null.
Receiver: null
Tried calling: element
[SEVERE] hive_generator:hive_generator on lib/Pages/Content Cards/productCard.dart:

NoSuchMethodError: The getter 'element' was called on null.
Receiver: null
Tried calling: element
[SEVERE] hive_generator:hive_generator on lib/Pages/Content Cards/featuredCard.dart:

NoSuchMethodError: The getter 'element' was called on null.
Receiver: null
Tried calling: element
[INFO] 19.8s elapsed, 5/14 actions completed.
[WARNING] hive_generator:hive_generator on lib/Models/product.dart:
Missing "part 'product.g.dart';".
[INFO] Running build completed, took 20.2s

[INFO] Caching finalized dependency graph...
[INFO] Caching finalized dependency graph completed, took 42ms

[SEVERE] Failed after 20.2s
pub finished with exit code 1

Это класс продукта: https://pastebin.com/0a0W18ep

Это productCard.dart: https://pastebin.com/gV7kP2YG

Это FeatureCard.dart: https://pastebin.com/7tke6V17

Вот соответствующая часть моего pubsec.yaml:

dependencies:
  flutter:
    sdk: flutter


  # The following adds the Cupertino Icons font to your application.
  # Use with the CupertinoIcons class for iOS style icons.
  cupertino_icons: ^0.1.3
  http: ^0.12.2
  hive: ^1.4.4
  hive_flutter: ^0.3.1
  # For OS-specific directory paths
  path_provider: ^1.6.18

dev_dependencies:
  build_runner:
  flutter_test:
    sdk: flutter
  hive_generator:

dependency_overrides:
  analyzer:

Я пробовал изменить версии build_runner и анализатора и проверить, является ли объект продукта нулевым, прежде чем извлекать из него значения. К сожалению, ни один из них не сработал.

1 ответ

Решение

В сообщении об ошибке говорится, что вы Missing "part 'product.g.dart';"..

Я проверил ваш код и его не хватает. Добавьте это отсутствующее утверждение в product.dart.

import 'package:hive/hive.dart';
 
part 'product.g.dart';

@HiveType(typeId: 1)
class Product {
   /// other code ...
}
Другие вопросы по тегам