我运行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});
}
我的意思是,这就是文档的代码!我做错了什么?
Btw:在M1 MacBook Air、Flutter 2.2.3、Android Studio 4.2.2 上开发
我终于能够通过删除我的pubspec.lock文件并再次运行flutter pub-get来解决这个问题。
我可以通过删除我的pubspec.lock文件、运行flutter clean
并再次运行flutter pub get
来修复此问题。
我现在也面临同样的问题。终于明白我做错了什么。
解决方案是应该在part"file_name.g.dart";
中使用dart文件的名称,并且文件名中不应该有空白。例如,我的dart文件名是Data Entry.dart
,而我使用的是part"entries.g.dart";
。这就是它显示此错误的原因。然后我将代码更改为part"Data Entry.g.dart";
。它仍然显示错误。
最后,我将文件名更改为entries.dart
,并使用了part"entries.g.dart";
,效果很好。
source_gen: 1.0.3
在我的案例中帮助了
解决问题的步骤:
- 执行
flutter clean
- 删除CCD_ 12
- 运行
flutter pub get
完成
现在运行build_runner
并关闭工作