在 Dart 的主线程中强制执行

IMo*_*zes 5 dart flutter

在我的 Dart 程序中,我使用了相机:

...    
final File imageProduct =  await ImagePicker.pickImage(source: ImageSource.camera, maxHeight: 1024, maxWidth: 1024);
...
Run Code Online (Sandbox Code Playgroud)

以前的版本效果很好,现在Flutter升级(v1.7.8+hotfix.3)后显示相机界面,可以拍照,然后出现错误:

W/Binder  ( 7331): Caught a RuntimeException from the binder stub implementation.
W/Binder  ( 7331): java.lang.RuntimeException: Methods marked with @UiThread must be executed on the main thread. Current thread: Binder:7331_4
Run Code Online (Sandbox Code Playgroud)

在 Flutter 中,异步函数在主线程中执行,所以我真的不明白可能是什么问题。我找不到在主线程中强制执行的显式方法。

什么可能是解决方案。

谢谢。

Isr*_*rah 2

  1. 将flutter通道更改为dev(flutter通道dev)。(这一步可以省略)
  2. 运行颤振升级
  3. 将 ImagePicker 版本更改为最新的 0.6.3+1。
  4. 运行项目

问题解决了。