import 'dart:async'; import 'dart:isolate'; import 'package:flutter/material.dart'; import 'package:golek_flutter_new/golektruk.dart'; import 'package:monitoring/monitoring.dart'; import 'firebase_options.dart'; void main() { // Has to be late so it doesn't instantiate before the // `initializeMonitoringPackage()` call. late final errorReportingService = ErrorReportingService(); runZonedGuarded>( () async { WidgetsFlutterBinding.ensureInitialized(); await initializeMonitoringPackage(DefaultFirebaseOptions.currentPlatform); FlutterError.onError = errorReportingService.recordFlutterError; Isolate.current.addErrorListener( RawReceivePort((pair) async { final List errorAndStacktrace = pair; await errorReportingService.recordError( errorAndStacktrace.first, errorAndStacktrace.last, ); }).sendPort, ); runApp(const GolekTruk()); }, (error, stack) => errorReportingService.recordError( error, stack, fatal: true, ), ); }