diff --git a/lib/error_reporting.dart b/lib/error_reporting.dart index 820e62ba..5c354150 100644 --- a/lib/error_reporting.dart +++ b/lib/error_reporting.dart @@ -82,14 +82,10 @@ bool _initReportCrashes() { return !JournalApp.isInDebugMode && Settings.instance.collectCrashReports; } -Future getCrashlyticsClient() async { - return _crashlytics ??= await _initCrashlytics(); -} - -FlutterCrashlytics _crashlytics; -Future _initCrashlytics() async { - await FlutterCrashlytics().initialize(); - return FlutterCrashlytics(); +Future initCrashlytics() async { + if (reportCrashes) { + await FlutterCrashlytics().initialize(); + } } Future reportError(Object error, StackTrace stackTrace) async { @@ -103,13 +99,6 @@ Future reportError(Object error, StackTrace stackTrace) async { } catch (e) { print("Failed to report with Sentry: $e"); } - - try { - final crashlytics = await getCrashlyticsClient(); - crashlytics.reportCrash(error, stackTrace, forceCrash: false); - } catch (e) { - print("Failed to report with Crashlytics: $e"); - } } print("Uncaught Exception: $error"); diff --git a/lib/main.dart b/lib/main.dart index 8cd7a045..ee96f13e 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -19,6 +19,10 @@ void main() async { JournalApp.isInDebugMode = foundation.kDebugMode; FlutterError.onError = flutterOnErrorHandler; + // Make sure Crashlytics is initialized so we get Android/iOS errors + // But for Flutter errors, lets just rely on Sentry. + initCrashlytics(); + Isolate.current.addErrorListener(RawReceivePort((dynamic pair) async { var isolateError = pair as List; assert(isolateError.length == 2);