【问题标题】:Crashlytics log not sent未发送 Crashlytics 日志
【发布时间】:2014-01-24 17:00:46
【问题描述】:

我在我的应用中正确配置了 Crashlytics。我可以看到崩溃报告。

我尝试将自定义日志添加到崩溃报告中,但我在报告中看不到任何内容。 我试图将日志移出 uncaughtException 处理程序,在这种情况下我会看到日志。

因此,如果我在应用程序正常运行时记录日志,那么当应用程序崩溃时,我会在崩溃报告中看到日志,但如果我尝试在我的 uncaughtException 处理程序中添加日志,则不会显示这些日志。

这是正确的行为吗?

我在 Android 上。

要记录我只使用:

    Crashlytics.log(myLog);

myLog 是一个非空非空字符串(我检查过)

【问题讨论】:

  • 您能粘贴整个未捕获的异常处理程序吗?我的理解是 Crashlytics 应该默认自己做,所以如果你也可以粘贴你的 Crashlytics 设置代码可能会很好。

标签: android crashlytics


【解决方案1】:

你是对的,你需要在注册你的 uncaughtException 处理程序之前移动 Crashliitycs.start。

【讨论】:

  • 这是正确的 - 添加您的处理程序 之后 以便它可以在 Crashlytics 的默认处理程序之前接收调用。似乎(至少在 v1.1.10 中)日志消息正在 Crashlytics 中异步处理,因此您可能需要 Thread.sleep() 1-2 秒,然后再将异常交给 Crashlytics UncaughtExceptionHandler
  • 谁能进一步详细说明这一点?我让 Crashlytics 记录了一些调试值,它显示在 logcat 中,但它从未与崩溃报告一起发送。调试日志分散在各处,因此我确信应该在崩溃之前存储一些日志,并且它不会同时发送未捕获的异常和非致命异常
【解决方案2】:

我认为可能的解释是日志是异步发送到服务器的,如果应用程序在发送之前被终止,您在崩溃报告中看不到它们。我检查了一下,情况并非如此:即使您在调用默认处理程序之前等待一段时间,也不会发生任何事情。

目前唯一的解释是在我之前调用了 Crashlitycs uncaughtException 处理程序。

所以要解决这个问题,在调用 Crashlytics.start 后注册处理程序就足够了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-22
    • 1970-01-01
    • 2014-09-17
    • 1970-01-01
    • 2019-09-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多