问题描述
我正在 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 (将#修改为@)