在iOS中,可以使用recordError(error)来记录Crashlytics上的非致命性错误,但似乎Android没有提供此功能。唯一的替代方法是使用logException(e)。我正在管理应用程序中的错误,并希望在特定的错误代码返回时进行记录。因此,在Crashlytics中,我希望将非致命性错误引用为errorCode。但是使用logException(e)方法会导致错误被引用到调用logException(e)的方法中。请问如何解决?
为了报告一个非致命问题,我通常会使用以下代码记录异常(请记住可以抛出Exception
的任何子类),具体步骤请参考log an exception。
Crashlytics.logException(new Exception("我的自定义错误信息"));
recordError
不同,这不会在应用程序重新启动之前上传报告。 - DarkNeuronrecordError
也需要等待下一次应用程序启动。根据 https://firebase.google.com/docs/crashlytics/customize-crash-reports?platform=ios#log-excepts 的说明,“Crashlytics 允许您记录非致命异常并在下一次应用程序启动时将其发送给您。” - Herman J. Radtke III对于已经迁移从Fabric-Crashlytics SDK到Firebase-Crashlytics SDK的用户,记录非关键异常或在try-catch块中捕获的异常的新方法是这样的 -
FirebaseCrashlytics.getInstance().recordException(e)
val crashlytics = FirebaseCrashlytics.getInstance()
crashlytics.setCustomKey("position", 1)
crashlytics.setCustomKey("marker_mode", "hidden")
crashlytics.setCustomKey("direction_shown", true)
为了添加一些日志消息,
FirebaseCrashlytics.getInstance().log("Reached breakpoint 2")
您还可以使用Crashlytics的以下功能来提供更多信息。
记录非致命事件:
try {
myMethodThatThrows();
} catch (Exception e) {
Crashlytics.logException(e);
// handle your exception here!
}
添加更多消息:
Crashlytics.log(int priority, String tag, String msg);
Crashlytics.log("Higgs-Boson detected! Bailing out...");
您也可以提供一些用户信息:
void Crashlytics.setUserIdentifier(String identifier);
void Crashlytics.setUserName(String name);
void Crashlytics.setUserEmail(String email);