崩溃期间如何记录额外的数据

时间:2019-06-26 06:55:17

标签: android crashlytics

我有时会在Play商店上发布的应用中遇到NPE,我想记录一些额外的信息,以便更好地了解出了什么问题。

因此,我遵循了Fabric中的本指南,以获取增强的报告,希望能看到我在堆栈跟踪中登录的变量的值。

这是我使用的代码:

id = table.getId();    // <------ line that throws NPE
Crashlytics.log("userIsOnline: " + isOnline);   // <----- variable I want to know it's value

今天,我从两次崩溃中获得了堆栈跟踪,但是没有记录任何变量。这不是我应该如何记录它还是还有其他我不了解的东西?

3 个答案:

答案 0 :(得分:1)

您可以在崩溃期间将FirebaseAnalytics用于日志事件。您可以使用logEvent()方法使用它来记录事件。

以下示例显示了如何记录建议的SELECT_CONTENT事件:

val bundle = Bundle()
bundle.putString(FirebaseAnalytics.Param.ITEM_ID, id)
bundle.putString(FirebaseAnalytics.Param.ITEM_NAME, name)
bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE, "image")
firebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, 
bundle)

您可以记录自己的自定义事件,如下例所示:

val params = Bundle()
params.putString("image_name", name)
params.putString("full_text", text)
firebaseAnalytics.logEvent("share_image", params)

希望以上示例对您有帮助。

答案 1 :(得分:1)

如官方文档所述

  

Crashlytics.log()仅写入Crashlytics崩溃报告。

id = table.getId();上方使用它,并在Fabric的“非致命”标签中检查数据。

答案 2 :(得分:0)

Log non-fatal exceptions
In addition to automatically reporting your app’s crashes, Crashlytics lets you log non-fatal exceptions.

On Android, that means you can log caught exceptions in your app’s catch blocks:

try {
    methodThatThrows();
} catch (Exception e) {
    Crashlytics.logException(e);
    // handle your exception here
}