【问题标题】:Error: "type 'UnspecifiedInvalidResult' is not a subtype of type 'LibraryElementResult' in type cast" in Flutter Hive错误:Flutter Hive 中的“类型‘UnspecifiedInvalidResult’不是类型转换中‘LibraryElementResult’类型的子类型”
【发布时间】:2021-09-24 19:09:18
【问题描述】:

我运行 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});
}

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

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

【问题讨论】:

    标签: flutter dart flutter-hive build-runner


    【解决方案1】:

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

    【讨论】:

    • 这对我有用。我的新项目中还没有任何HiveTypes,但我遇到了同样的错误
    • 成功了,谢谢!
    【解决方案2】:

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

    解决办法是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";,效果很好。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        source_gen: 1.0.3 对我有帮助

        【讨论】:

          猜你喜欢
          • 2021-10-10
          • 2022-12-03
          • 2019-05-28
          • 1970-01-01
          • 2021-11-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-09-25
          相关资源
          最近更新 更多