我正在尝试通过注入生成,我完成了 flutter clean 也不起作用,我使用的是稳定版本 flutter 2.2.2,我在这行代码上面临空检查错误
\n这段代码抛出错误
\nSharedPreferences.getInstance();\nRun 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 }\nRun Code Online (Sandbox Code Playgroud)\nSharedPreferences.getInstance();\nRun 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 之前初始化绑定时,才需要调用此方法。
我也遇到了这个问题。然而,@badasz 的答案并不是一个解决方案,因为 github 问题中讨论的异常是完全不同的。SharedPreferences.getInstance()就我而言,我在调用之前运行了代码runApp(Widget app)。这导致了给定的错误。
| 归档时间: |
|
| 查看次数: |
18826 次 |
| 最近记录: |