1

我做了一个测试来了解 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 控制台中看到了新记录。包括非致命报告

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

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

4

3 回答 3

2

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

您可以在此处阅读有关该过程的更多信息,

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

于 2020-04-16T19:05:48.333 回答
1

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

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

于 2021-08-09T23:20:35.523 回答
0

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

于 2020-04-28T22:47:04.920 回答