错误:flutter/lib/ui/ui_dart_state.cc(199) 未处理的异常:对空值使用空检查运算符

use*_*119 9 flutter

我正在尝试通过注入生成,我完成了 flutter clean 也不起作用,我使用的是稳定版本 flutter 2.2.2,我在这行代码上面临空检查错误

\n

这段代码抛出错误

\n
SharedPreferences.getInstance();\n
Run Code Online (Sandbox Code Playgroud)\n

还有这段代码

\n
   @module\n    abstract class ThemeModule {\n      @preResolve\n      Future<SharedPreferences> get prefs async =>\n           await SharedPreferences.getInstance();\n    }\n
Run Code Online (Sandbox Code Playgroud)\n

错误堆栈

\n
SharedPreferences.getInstance();\n
Run Code Online (Sandbox Code Playgroud)\n

Min*_*rid 29

我有同样的问题,解决方案是WidgetsFlutterBinding.ensureInitialized()在运行应用程序之前添加主函数:

Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
// init your dependency injection here
runApp(MyApp());}
Run Code Online (Sandbox Code Playgroud)

来自文档

返回 WidgetsBinding 的实例,并在必要时创建并初始化它。如果创建了一个,它将是一个 WidgetsFlutterBinding。如果之前已经初始化过,那么它至少会实现 WidgetsBinding。

仅当您需要在调用 runApp 之前初始化绑定时,才需要调用此方法。


Las*_*s05 3

我也遇到了这个问题。然而,@badasz 的答案并不是一个解决方案,因为 github 问题中讨论的异常是完全不同的。SharedPreferences.getInstance()就我而言,我在调用之前运行了代码runApp(Widget app)。这导致了给定的错误。