微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决在 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 举报,一经查实,本站将立刻删除。