簡體   English   中英

Flutter Firebase Crashlytics 將堆棧跟蹤報告為 Java 類文件而不是 Dart 文件

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

我在我們的應用程序中集成了 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 源代碼顯示錯誤的文件名和行號?

來自 Crashlytics 的托德。 這是一種已知行為,我們正在研究可能的選擇。 Kotlin 用戶會看到類似的行為。

我建議轉到哨兵。 我現在正在為我的應用程序做這件事。 在測試它的同時,我可以說 sentry 比 Crashlytics 好得多!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM