我想在崩溃异常日志记录期间另外发送一个对象转储。例如,假设发生了一个nullPointerException。我想另外添加一个大型对象,它将成为我的模型,并将其包含在crashlytics的堆栈跟踪区域中。这样当我看到堆栈跟踪时,我也可以从转储中查看模型信息。除了通常的碰撞记录之外,我如何发送此信息?以下是我到目前为止的情况:
try{
//....
throw new NullPointerException("my cool msg");
}
catch(Exception e){
Crashlytics.setInt("priority", 4);
Crashlytics.setString("tag", "mytag");
Crashlytics.setString("message", Model.toString());
Crashlytics.logException(e);
}
现在发生的事情是什么都没有出现。但如果我为“消息”注释掉setString,那么我会得到一个带有“my cool msg”消息的堆栈跟踪。
更新:我甚至尝试过Crashlytics.log(Model.toString());但这并没有显示崩溃论。我正在onCreate中的Application子类中设置crashlytics,如下所示:Fabric.with(this, new Crashlytics());
来自现金分析文档,我发现了这个:
要确保发送崩溃报告对用户设备的影响最小,Crashlytics日志的最大大小为64 KB。当日志超过64 KB时,将删除最早记录的值以保持此阈值。
这可能是我的问题。现在检查我的尺寸......
调整有效负载的大小不起作用。我使有效载荷9个字符,但仍然没有出现。
更新:
让我们重新开始,但更简单。为什么以下不适合我?
try{
//....
throw new NullPointerException("my cool msg");
}
catch(Exception e){
Crashlytics.setInt("priority", 4);
Crashlytics.setString("tag", "mytag");
Crashlytics.setString("message", "");
Crashlytics.logException(e);
}
这里发生的事情确实是在crasylytics仪表板中出现了堆栈跟踪,其中包含“我的酷消息”,但没有关于优先级,标签或消息的信息。只有堆栈跟踪出现。应该在那里 不是带有这些标题的条目吗?
答案 0 :(得分:3)
点击绿色的“查看所有会话”按钮后,我能够看到自定义信息。他们本可以让它变得更加明显。
以及docs似乎非致命异常会在下次应用启动时进行批处理并发送:
Crashlytics在专用后台线程上处理异常,因此对您的应用程序的性能影响很小。为了减少用户的网络流量,Crashlytics将记录的异常一起批处理,并在下次启动应用程序时将其发送。