1

我想在 crashlytics 异常记录期间另外发送一个对象转储。因此,例如,假设发生了一个 nullPointerException。我想另外添加一个大对象,这将是我的模型,并将其包含在 crashlytics 的堆栈跟踪区域中。这样,当我看到堆栈跟踪时,我还可以从转储中查看模型信息。除了通常的 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,那么我会得到一个带有消息“我的酷消息”的堆栈跟踪。

更新:我什至尝试过 Crashlytics.log(Model.toString()); 但这在 crashlytics 上没有显示任何内容。我正在从 onCreate 中的 Application 子类设置 crashlytics,如下所示: Fabric.with(this, new Crashlytics());

从 cashlytics 文档中我发现了这个:

为确保发送崩溃报告对用户设备的影响最小,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 仪表板中,上面写着“我的酷消息”,但没有任何关于优先级、标签或消息的内容。只有堆栈跟踪出现。那里不应该有这些标题或其他东西的条目吗?

4

1 回答 1

4

在此处输入图像描述

单击绿色的“查看所有会话”按钮后,我能够看到自定义信息。他们本可以让它更明显。

而且从文档看来,非致命异常似乎是批处理并在下次应用启动时发送:

Crashlytics 在专用后台线程上处理异常,因此对您的应用程序的性能影响很小。为了减少用户的网络流量,Crashlytics 将记录的异常批量处理在一起,并在应用下次启动时发送。

于 2016-12-22T05:51:57.217 回答