我在使用 Android Studio 时在 Flutter 项目中遇到以下错误:
/C:/src/flutterSDK/flutter/.pub-cache/hosted/pub.dartlang.org/
get-4.6.3/lib/get_navigation/src/snackbar/snackbar.dart:452:31
: Error: Method 'addPostFrameCallback' cannot be called on
'SchedulerBinding?' because it is potentially null.
- 'SchedulerBinding' is from
'package:flutter/src/scheduler/binding.dart'
('/C:/src/flutterSDK/flutter/packages/flutter/lib/src/scheduler/binding.dart').
Try calling using ?. instead.
SchedulerBinding.instance.addPostFrameCallback(
^^^^^^^^^^^^^^^^^^^^
任何人都可以帮助我了解此错误的原因并提出解决方案吗?
出现此错误是因为包 get 4.6.2 或 4.6.3 适用于新的 flutter sdk 版本 3.0。所以你得到了这个错误。 Fluter SDK 版本 2.xx 必须使用 get 4.6.1
我在“dart.get”包上遇到了同样的问题。然后我就这样做了..
首先进入 pubspec.yaml 文件,然后编辑获取版本不超过 (获取:^4.6.1)..如果您使用的是fluter sdk v2.xx。
如果版本降不下来就试试这个方法
转到 pubspec.lock 文件。编辑版本不超过(4.6.1)..如果您使用的是fluter sdk v2.xx。
你会在 pubspec.lock 文件中找到
最后你必须这样做
然后“pub get”..错误就会消失。
这是因为最近的 flutter 更新。所有 flutter
SDKs >= V2.10.3
都有这个问题。目前还没有针对此错误的正确解决方案。
临时解决方案:
您只需将 flutter SDK 降级到
V2.10.2
或更低版本即可解决此问题。
注:
降级后,请确保根据 Flutter SDK 更改 Flutter 项目的 pubspec.yaml 中的 dart 版本。
此错误是由于 Flutter 3.0.0 中 null-safety 属性发生了一些变化。对于您的情况,您可以尝试导入:
get: 4.6.1
而不是get: ^4.6.3
。
来源:https://github.com/jonataslaw/getx/issues/2356
试试这个
flutter doctor --android-licenses