首页 > 解决方案 > 如何在不等待 FATAL ERROR 的情况下发送 crashlytic NON FATAL ERROR?

问题描述

我做了一个测试来了解 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 控制台?

标签: androidfirebasecrashlyticscrashlytics-android

解决方案


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

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

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


推荐阅读