我有时会在Play商店上发布的应用中遇到NPE
,我想记录一些额外的信息,以便更好地了解出了什么问题。
因此,我遵循了Fabric中的本指南,以获取增强的报告,希望能看到我在堆栈跟踪中登录的变量的值。
这是我使用的代码:
id = table.getId(); // <------ line that throws NPE
Crashlytics.log("userIsOnline: " + isOnline); // <----- variable I want to know it's value
今天,我从两次崩溃中获得了堆栈跟踪,但是没有记录任何变量。这不是我应该如何记录它还是还有其他我不了解的东西?
答案 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
}