简体   繁体   English

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

[英]Flutter Firebase Crashlytics reports stack trace as Java class files and not as Dart files

I have integrated Flutter Crashlytics in our app, but it is reporting crashes stack trace in Java class files and not in Dart files.我在我们的应用程序中集成了 Flutter Crashlytics,但它在 Java 类文件中而不是在 Dart 文件中报告崩溃堆栈跟踪。 So it is difficult to infer what is the file and line number where this issue occurred in the flutter codebase.因此,很难推断出 flutter 代码库中发生此问题的文件和行号是什么。

Here is an example of one such crash report from Firebase Crashltytics of an Uncaught exception:以下是来自 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)

Here is how Crashlytics is initialized:以下是 Crashlytics 的初始化方式:

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

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

I am reporting caught exceptions as such:我报告捕获的异常如下:

Crashlytics.instance.recordError(error, stack);

How can I configure Crashlytics to report stack trace in dart?如何配置 Crashlytics 以在 dart 中报告堆栈跟踪? Does Crashlytics show erroneous file names and line numbers for Dart source code? Crashlytics 是否会为 Dart 源代码显示错误的文件名和行号?

Todd from Crashlytics.来自 Crashlytics 的托德。 This is a known behavior and we are looking into possible options moving forward.这是一种已知行为,我们正在研究可能的选择。 Kotlin users will see a similar behavior. Kotlin 用户会看到类似的行为。

I would suggest to move on to Sentry.我建议转到哨兵。 I am doing it for my app now.我现在正在为我的应用程序做这件事。 And while just testing it, I can say that sentry is much better than Crashlytics!在测试它的同时,我可以说 sentry 比 Crashlytics 好得多!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM