Flutter Firebase Crashlytics将堆栈跟踪报告为Java类文件而不是Dart文件

时间:2020-02-19 09:19:22

标签: firebase flutter dart crashlytics

我已经在我们的应用程序中集成了Flutter Crashlytics,但是它报告的是Java类文件而不是Dart文件中的崩溃堆栈跟踪。因此,很难推断出在flutter代码库中发生此问题的文件和行号是什么。

以下是Firebase Crashltytics关于未捕获异常的此类崩溃报告的示例:

Non-fatal Exception: java.lang.Exception: NoSuchMethodError: The method 'markNeedsBuild' was called on null.
Receiver: null
Tried calling: markNeedsBuild()
       at State.setState(State.java:1168)
       at _ArgonButtonState.initState.<fn>(initState.java:107)
       at AnimationLocalStatusListenersMixin.notifyStatusListeners(AnimationLocalStatusListenersMixin.java:193)
       at AnimationController._checkStatusChanged(AnimationController.java:773)
       at AnimationController._tick(AnimationController.java:789)
       at Ticker._tick(Ticker.java:237)
       at SchedulerBinding._invokeFrameCallback(SchedulerBinding.java:1102)
       at SchedulerBinding.handleBeginFrame.<fn>(handleBeginFrame.java:1017)
       at SchedulerBinding.handleBeginFrame(SchedulerBinding.java:1015)
       at SchedulerBinding._handleBeginFrame(SchedulerBinding.java:949)

以下是Crashlytics初始化的方式:

// Pass all uncaught errors from the framework to Crashlytics.
FlutterError.onError = Crashlytics.instance.recordFlutterError;

runZoned(() {
    runApp(AppMain(homeWidget));
  }, onError: Crashlytics.instance.recordError);

我正在报告捕获的异常,例如:

Crashlytics.instance.recordError(error, stack);

如何配置Crashlytics以在dart中报告堆栈跟踪? Crashlytics是否显示Dart源代码的错误文件名和行号?

2 个答案:

答案 0 :(得分:3)

Crashlytics的Todd。这是一种已知的行为,我们正在研究可能的选择。 Kotlin用户将看到类似的行为。

答案 1 :(得分:0)

我建议继续前往哨兵。 我现在正在为我的应用程序进行操作。而且,尽管只是进行测试,但是我可以说哨兵比Crashlytics更好!