golektruk-barebone/lib/main.dart

41 lines
1.1 KiB
Dart

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<Future<void>>(
() async {
WidgetsFlutterBinding.ensureInitialized();
await initializeMonitoringPackage(DefaultFirebaseOptions.currentPlatform);
FlutterError.onError = errorReportingService.recordFlutterError;
Isolate.current.addErrorListener(
RawReceivePort((pair) async {
final List<dynamic> errorAndStacktrace = pair;
await errorReportingService.recordError(
errorAndStacktrace.first,
errorAndStacktrace.last,
);
}).sendPort,
);
runApp(const GolekTruk());
},
(error, stack) => errorReportingService.recordError(
error,
stack,
fatal: true,
),
);
}