如何修复 Flutter 中“无法在‘SchedulerBinding’上调用方法‘addPostFrameCallback’?”

问题描述 投票:0回答:4

我在使用 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(
                              ^^^^^^^^^^^^^^^^^^^^

任何人都可以帮助我了解此错误的原因并提出解决方案吗?

flutter dart android-studio get flutter-getx
4个回答
6
投票

出现此错误是因为包 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”..错误就会消失。


3
投票

这是因为最近的 flutter 更新。所有 flutter

SDKs >= V2.10.3
都有这个问题。目前还没有针对此错误的正确解决方案。

临时解决方案:

您只需将 flutter SDK 降级到

V2.10.2
或更低版本即可解决此问题。

注:

降级后,请确保根据 Flutter SDK 更改 Flutter 项目的 pubspec.yaml 中的 dart 版本。


1
投票

此错误是由于 Flutter 3.0.0 中 null-safety 属性发生了一些变化。对于您的情况,您可以尝试导入:

get: 4.6.1
而不是
get: ^4.6.3
。 来源:https://github.com/jonataslaw/getx/issues/2356


1
投票

试试这个

flutter doctor --android-licenses
© www.soinside.com 2019 - 2024. All rights reserved.