From 2822d5dbfddd7845d0eb4d863d4c0256876649dc Mon Sep 17 00:00:00 2001 From: Kingkor Roy Tirtho Date: Sun, 9 Jun 2024 23:05:19 +0600 Subject: [PATCH] chore: fix widget binding errors --- lib/services/logger/logger.dart | 53 ++++++++++++++++++--------------- 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/lib/services/logger/logger.dart b/lib/services/logger/logger.dart index 82708478..6ba76ea1 100644 --- a/lib/services/logger/logger.dart +++ b/lib/services/logger/logger.dart @@ -3,6 +3,7 @@ import 'dart:io'; import 'dart:isolate'; import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; import 'package:logger/logger.dart'; import 'package:path/path.dart'; import 'package:path_provider/path_provider.dart'; @@ -16,34 +17,38 @@ class AppLogger { log = Logger( level: kDebugMode || (verbose && kReleaseMode) ? Level.all : Level.info, ); - - getLogsPath().then((value) => logFile = value); } static R? runZoned(R Function() body) { - FlutterError.onError = (details) { - reportError(details.exception, details.stack ?? StackTrace.current); - }; - - PlatformDispatcher.instance.onError = (error, stackTrace) { - reportError(error, stackTrace); - return true; - }; - - if (!kIsWeb) { - Isolate.current.addErrorListener( - RawReceivePort((pair) async { - final isolateError = pair as List; - reportError( - isolateError.first.toString(), - isolateError.last, - ); - }).sendPort, - ); - } - return runZonedGuarded( - body, + () { + WidgetsFlutterBinding.ensureInitialized(); + + FlutterError.onError = (details) { + reportError(details.exception, details.stack ?? StackTrace.current); + }; + + PlatformDispatcher.instance.onError = (error, stackTrace) { + reportError(error, stackTrace); + return true; + }; + + if (!kIsWeb) { + Isolate.current.addErrorListener( + RawReceivePort((pair) async { + final isolateError = pair as List; + reportError( + isolateError.first.toString(), + isolateError.last, + ); + }).sendPort, + ); + } + + getLogsPath().then((value) => logFile = value); + + return body(); + }, (error, stackTrace) { reportError(error, stackTrace); },