flutter - Flutter:未处理的异常:在初始化绑定之前访问了 ServicesBinding.defaultBinaryMessenger
问题描述
有什么办法可以解决这个问题吗?
堆栈跟踪:
[VERBOSE-2:ui_dart_state.cc(148)] Unhandled Exception: ServicesBinding.defaultBinaryMessenger was accessed before the binding was initialized.
If you're running an application and need to access the binary messenger before `runApp()` has been called (for example, during plugin initialization), then you need to explicitly call the `WidgetsFlutterBinding.ensureInitialized()` first.
If you're running a test, you can call the `TestWidgetsFlutterBinding.ensureInitialized()` as the first line in your test's `main()` method to initialize the binding.
#0 defaultBinaryMessenger.<anonymous closure> (package:flutter/src/services/binary_messenger.dart:73:7)
#1 defaultBinaryMessenger (package:flutter/src/services/binary_messenger.dart:86:4)
#2 MethodChannel.binaryMessenger (package:flutter/src/services/platform_channel.dart:140:62)
#3 MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:314:35)
<asynchronous suspension>
#4 MethodChannel.invokeMapMethod (package:f<…>
解决方案
这个问题是在升级 Flutter 时引入的。这背后的原因是您正在等待一些数据或在async
内部运行一个函数main()
。
ScopedModel
我正在内部和内部初始化main()
,我正在等待一些数据。
有一个非常小的修复。跑WidgetsFlutterBinding.ensureInitialized()
进去void main()
,在你做之前runApp()
。奇迹般有效!!
void main() {
WidgetsFlutterBinding.ensureInitialized();
runApp(Delta(
model: ProductDataModel(),
));
}
推荐阅读
- android - 为特定用户将图像上传到 firebase
- docker - haproxy 背后的牧场主
- java - 使用 Prism.js 在 WebView 中显示 HTML
- hyperledger-fabric - Hyperledger - 加入频道后对等方无法实例化链码
- c - 如何检查 __builtin_ 函数在 gcc 上是否可用
- c# - 将文本框转换为多值、参数化的 SQL 查询
- python - 根据多个其他列中存在的部分字符串创建列
- nativescript - NativeScript Angular ListPicker 的行为类似于 `
- javascript - 即使不需要,我是否应该包含论点
- bash - 我怎样才能让 AWK 在最后开始阅读?