41 lines
1.1 KiB
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,
|
|
),
|
|
);
|
|
}
|