【问题标题】:How to send crashlytic NON FATAL ERROR without waiting for FATAL ERROR?如何在不等待 FATAL ERROR 的情况下发送 crashlytics NON FATAL ERROR?
【发布时间】:2020-04-16 14:12:47
【问题描述】:

我进行了测试以了解 Crashlytics 的工作原理。我在我的应用程序中制作了 2 个按钮,1 个用于 NON FATAL 报告,1 个用于 FATAL CRASH 报告。代码如下所示:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    nonfatal.setOnClickListener {
        val crashlytics = FirebaseCrashlytics.getInstance()
        crashlytics.setUserId(Random.nextInt().toString())
        crashlytics.recordException(Throwable("AAA"))
    }

    fatal.setOnClickListener {
        throw Exception("This is fatal")
    }
}

然后我尝试按 NON FATAL 按钮然后重新启动我的应用程序。我的 crashlytic 控制台没有任何变化。但是当我按下致命按钮时,应用程序崩溃,然后我重新打开应用程序。不久之后,我在 crashlytic 控制台中看到了新记录。包括 NON FATAL 报告

所以结论是,crashlytics 不会立即发送 NON FATAL。它只是保存它,然后当应用程序崩溃时,它会将 FATAL 和 NON FATAL 发送到 Firebase。

问题:如何强制 Firebase Crashlytics 在不等待应用崩溃的情况下将 NON FATAL 错误发送到 Firebase 控制台?

【问题讨论】:

    标签: android firebase crashlytics crashlytics-android


    【解决方案1】:

    应用程序无需崩溃即可发送非致命消息。它只需要您结束应用会话,然后重新启动应用。

    您可以阅读更多关于流程here

    “Crashlytics 在专用后台线程上处理异常,因此对您的应用的性能影响很小。为了减少用户的网络流量,Crashlytics 将记录的异常批处理在一起,并在应用下次启动时发送。”

    【讨论】:

    • 我已经重新启动了我的应用程序,但仍然没有发送非致命错误
    【解决方案2】:

    您必须确保您的应用完全终止并重新启动,而不仅仅是后台和前台。

    然后在下一次完全/冷启动期间,Crashlytics 将发送上一个会话中的非致命和致命错误。

    【讨论】:

      【解决方案3】:

      好吧,我不知道如何将 NON FATAL 错误强制发送到 Firebase 控制台。据我了解,当您重新启动应用程序时,仍然没有发送 NON FATAL 错误。这是因为您的应用程序并没有真正被杀死。因此,如果您想发送 NON FATAL,那么您必须从最近的应用程序中删除您的应用程序。当您再次重新启动应用时,您将能够在 Firebase 控制台中发现 NON FATAL 错误

      【讨论】:

        猜你喜欢
        • 2022-12-27
        • 2020-09-05
        • 2018-07-03
        • 1970-01-01
        • 2012-05-08
        • 2015-12-21
        • 2014-07-26
        • 2020-10-16
        • 1970-01-01
        相关资源
        最近更新 更多