在 MobX 依赖项的 null 安全版本上运行 build_runner 时出错

问题描述

我正在 Flutter 项目中尝试 MobX,我参考了一个示例,但我提高了版本,以便我可以练习使用 null 安全进行编码。在我运行 pub upgrade 之前它一直在工作。运行 build_runner 开始给我这个错误

D:\projects\Flutter_mobx_base_code>Flutter pub run build_runner clean
Failed to precompile build_runner:build_runner:
/D:/Flutter/.pub-cache/hosted/pub.dartlang.org/analyzer-1.6.0/lib/src/error/best_practices_verifier.dart:1600:40: Error: Getter not found: 'topLevelVariable'.
      return kinds.contains(TargetKind.topLevelVariable);
                                       ^^^^^^^^^^^^^^^^
/D:/Flutter/.pub-cache/hosted/pub.dartlang.org/analyzer-1.6.0/lib/src/error/best_practices_verifier.dart:2024:23: Error: Getter not found: 'topLevelVariable'.
      case TargetKind.topLevelVariable:
                      ^^^^^^^^^^^^^^^^
/D:/Flutter/.pub-cache/hosted/pub.dartlang.org/analyzer-1.6.0/lib/src/error/best_practices_verifier.dart:2024:23: Error: Type 'dynamic' of the case expression is not a subtype
 of type 'TargetKind' of this switch expression.
 - 'TargetKind' is from 'package:Meta/Meta_Meta.dart' ('/D:/Flutter/.pub-cache/hosted/pub.dartlang.org/Meta-1.3.0/lib/Meta_Meta.dart').
      case TargetKind.topLevelVariable:
                      ^
/D:/Flutter/.pub-cache/hosted/pub.dartlang.org/analyzer-1.6.0/lib/src/error/best_practices_verifier.dart:2001:13: Context: The switch expression is here.
    switch (this) {
            ^

这些是我的依赖项:

environment:
  sdk: ">=2.12.0 <3.0.0"

dependencies:
  Flutter:
    sdk: Flutter
  cupertino_icons: ^1.0.2
  mobx: ^2.0.0
  Flutter_mobx: ^2.0.0
  mobx_codegen: ^2.0.0
  provider: 5.0.0

dev_dependencies:
  build_runner: ^1.12.2
  Flutter_test:
    sdk: Flutter

但是,如果我使用以下版本,build_runner 会按预期工作:

environment:
  sdk: ">=2.1.0 <3.0.0"

dependencies:
  Flutter:
    sdk: Flutter
  cupertino_icons: ^0.1.2
  mobx: ^0.1.2
  Flutter_mobx: ^0.1.1
  mobx_codegen: ^0.1.0+1
  provider: ^1.6.1


dev_dependencies:
  Flutter_test:
    sdk: Flutter
  build_runner: ^1.3.0

我真的很想实现空安全,但我不能因为这个错误。我无法理解此错误及其来源,因此我无法在此错误来自的任何包中发布问题。我的依赖项设置有问题吗?

我尝试了 Flutter clean -> Flutter pub cache repair -> Flutter pub get,重新开始一个新项目以及任何我认为可以解决问题的方法,我放弃了,这就是我来这里的原因。任何建议和帮助将不胜感激!谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)