gpt4 book ai didi

firebase - Flutter Crashlytics 日志捕获异常

转载 作者:行者123 更新时间:2023-12-02 20:05:00 25 4
gpt4 key购买 nike

寻求一些关于如何使用 flutter 的 firebase_crashlytics 包记录捕获的异常的说明。

如果我理解正确(并且通过运行一些示例代码)Crashlytics.instance.log('text');只会将日志添加到下一个崩溃报告中,而不是发送非-致命问题本身。

我正在寻找与 Android 上的 Crashlytics.logException(e); 等效的功能,例如

try {
throwException();
} catch (e) {
Crashlytics.logException(e);
}

它允许您记录捕获的异常,以便它们在 Crashlytics 仪表板中显示为非致命问题。

目前,flutter 的 firebase_crashlytics 包可以实现这一点吗?

目前调用 Crashlytics.instance.recordError('text', StackTrace.current) 是实现此目的的方法吗?

非常感谢!

最佳答案

简短回答,是的。

Crashlytics.instance.recordError()相当于 Crashlytics.logException()

如果你深入研究 Flutter firebase_crashlytics源码中,你可以实际看到涉及到哪些Android API。

Flutter 的 recordError()调用方法Crashlytics#onError在 Android 库中。

跟踪 Crashlytics#onError,您会看到它转到 Crashlytics.logException(exception);

附加说明,您还会注意到原因 Crashlytics.instance.log() “只会将日志添加到下一个崩溃报告中”。这些日志被添加到 ListQueue<String> _logs然后将其打包到下一次调用 recordError()

Flutter invocation of Crashlytics.logException() 的片段:

_recordError(...) {
...
final String result = await channel
.invokeMethod<String>('Crashlytics#onError', <String, dynamic>{
'exception': "${exception.toString()}",
'context': '$context',
'information': _information,
'stackTraceElements': stackTraceElements,
'logs': _logs.toList(),
'keys': _prepareKeys(),
});
}

还有一些引用notes for Crashlytics.logException() :

To reduce your users’ network traffic, Crashlytics batches loggedexceptions together and sends them the next time the app launches.

For any individual app session, only the most recent 8 loggedexceptions are stored.

关于firebase - Flutter Crashlytics 日志捕获异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57997416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com