未处理的异常:在初始化绑定之前访问了 ServicesBinding.defaultBinaryMessenger

Posted

技术标签:

【中文标题】未处理的异常:在初始化绑定之前访问了 ServicesBinding.defaultBinaryMessenger【英文标题】:Unhandled Exception: ServicesBinding.defaultBinaryMessenger was accessed before the binding was initialized 【发布时间】:2020-11-22 23:35:01 【问题描述】:

当我尝试处理一个项目时,我从 github 获取源代码并在 android Studio 中打开它。同步后整个代码没有错误,但是当我运行应用程序时,它显示了很多错误:

这些是应用程序中显示的错误。 我曾尝试迁移到 AndroidX,但也没有成功。 所以基本上谁能告诉我如何运行从任何其他来源(如 github)下载的颤振应用程序?

【问题讨论】:

【参考方案1】:

这是一个已经提出的问题here。您应该发布控制台中指示的代码。重要的部分似乎是日志的“#6”行,第 17 行包含 flutter_sudoku lib/main.dart 文件包。

查看 github 存储库,确实,他们正在使主要功能“等待”系统方向在此处准备就绪

void main() =>  SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp, DeviceOrientation.portraitDown])
    .then((_) 
      runApp(
      BlocProvider(
        bloc: UserDataBloc(),
        child: MyApp(),
      )
  );
);

你必须在等待函数之前调用WidgetsFlutterBinding.ensureInitialized();

void main() 
  WidgetsFlutterBinding.ensureInitialized();
  SystemChrome.setPreferredOrientations(
      [DeviceOrientation.portraitUp, DeviceOrientation.portraitDown]).then((_) 
    runApp(BlocProvider(
      bloc: UserDataBloc(),
      child: MyApp(),
    ));
  );

【讨论】:

以上是关于未处理的异常:在初始化绑定之前访问了 ServicesBinding.defaultBinaryMessenger的主要内容,如果未能解决你的问题,请参考以下文章

MultiTigger 绑定异常处理

异常处理

MultiTigger 绑定异常处理

未处理的异常:在 _ScreenState.initState() 完成之前调用了 inheritFromWidgetOfExactType(_LocalizationsScope) 或 inheri

未处理的异常:堆栈溢出,Flutter GetXController 正在初始化 2000 次

未处理的异常,glGenVertexArrays 调用上的访问冲突