记录Crashlytics上的非致命错误

Ese*_*far 27 android crashlytics crashlytics-android

在iOS上,可以使用recordError(错误)记录Crashlytics上的非致命错误,但显然此功能不适用于Android.

我找到的唯一选择是使用logException(e).我在我的应用程序上管理错误,并且我想在返回特定错误代码时进行记录.所以,在Crashlytics上我希望errorCode引用非致命错误.但使用logException(E)方法,错误是由其中方法引用logException(五)被调用.

我怎样才能做到这一点?

Nic*_*sco 36

我为报告非致命问题而做的是使用以下代码记录异常(记住你可以抛出任何子类Exception):

Crashlytics.logException(new Exception("My custom error message"));

  • 但是,与iOS的`recordError`不同,它不会在应用重启后上载报告。 (5认同)

0xA*_*iHn 17

您还可以使用以下功能的Crashlytics提供更多信息。

记录非致命事件:

try {
  myMethodThatThrows();
} catch (Exception e) {
  Crashlytics.logException(e);
  // handle your exception here!
}
Run Code Online (Sandbox Code Playgroud)

添加更多消息:

Crashlytics.log(int priority, String tag, String msg);
Crashlytics.log("Higgs-Boson detected! Bailing out...");
Run Code Online (Sandbox Code Playgroud)

您还可以提供一些用户信息:

void Crashlytics.setUserIdentifier(String identifier);
void Crashlytics.setUserName(String name);
void Crashlytics.setUserEmail(String email);
Run Code Online (Sandbox Code Playgroud)

  • Crashlytics.log(“ msg”)仅适合作为将来可能出现的异常的补充,否则,开发人员将不会在Crashltyics仪表板上找到它。 (3认同)

abh*_*ank 7

对于那些从 Fabric-Crashlytics SDK迁移到 Firebase-Crashlytics SDK 的人来说,记录非关键异常或在 try-catch 块中捕获的异常的新方法是这样的 -

FirebaseCrashlytics.getInstance().recordException(e)
Run Code Online (Sandbox Code Playgroud)

要将其他数据字段添加到崩溃报告中,您可以在记录异常之前进行键值对,如下所示

val crashlytics = FirebaseCrashlytics.getInstance()
crashlytics.setCustomKey("position", 1)
crashlytics.setCustomKey("marker_mode", "hidden")
crashlytics.setCustomKey("direction_shown", true)
Run Code Online (Sandbox Code Playgroud)

要添加一些日志消息,

FirebaseCrashlytics.getInstance().log("Reached breakpoint 2")
Run Code Online (Sandbox Code Playgroud)