错误:Flutter Hive 中的“类型‘UnspecifiedInvalidResult’不是类型转换中类型‘LibraryElementResult’的子类型”

Boo*_*h81 9 dart flutter build-runner flutter-hive

我运行flutter packages pug run build_runner build在 Flutter 中创建 TypeAdapter 的普通命令,但出现以下错误:

类型“UnspecifiedInvalidResult”不是类型转换中类型“LibraryElementResult”的子类型

它说它在以下文件中发现了错误:

import 'dart:core';
import 'package:hive/hive.dart';
part 'storedItem.g.dart';

@HiveType(typeId: 1)
class Person extends HiveObject {

  @HiveField(0)
  String name;

  @HiveField(1)
  int age;
  
  Person({required this.name, required this.age});
}
Run Code Online (Sandbox Code Playgroud)

我的意思是这就是文档的代码!我做错了什么?

顺便说一句:在 M1 MacBook Air、Flutter 2.2.3、Android Studio 4.2.2 上进行开发

Joe*_*ler 16

我终于能够通过删除 pubspec.lock 文件并再次运行 flutter pub get 来解决此问题。


小智 7

我可以通过删除 pubspec.lock 文件、运行flutter clean并再次运行来解决此问题flutter pub get


小智 5

我现在面临着同样的问题。终于明白我做错了什么。

解决方案是应使用 dart 文件的名称,part"file_name.g.dart";并且文件名中不应有空格。例如,我的 dart 文件名是Data Entry.dart并且我正在使用part"entries.g.dart";. 这就是它显示此错误的原因。然后我将代码更改为part"Data Entry.g.dart";. 它仍然显示错误。

最后我将文件名更改为entries.dart并使用part"entries.g.dart";,效果很好。


小智 0

source_gen: 1.0.3 对我的情况有帮助