【问题标题】:ACRA: How to execute code when crash is reported [duplicate]ACRA:报告崩溃时如何执行代码[重复]
【发布时间】:2012-09-01 19:14:56
【问题描述】:

可能重复:
ACRA with android: How to execute code before crash is reported

我正在使用 ACRA 进行崩溃报告。当发生崩溃时,ACRA 会报告。如何在报告崩溃之前执行代码?我想在崩溃发生时添加一些自定义变量,以便与报告一起发送。有没有我可以覆盖的函数或类似的东西?

谢谢

【问题讨论】:

  • 是的,您的第二个解决方案确实有效。如果它是一个答案,我会接受它
  • 我会把它作为答案发布然后:-)

标签: android acra


【解决方案1】:

ACRA 开箱即用地支持此功能,详见here。 基本上,您所要做的就是在您想要的位置为您想要的任何自定义数据添加以下行:

ErrorReporter.getInstance().putCustomData("myVariable", myVariable);

【讨论】:

  • 是的,我知道,但我应该把这条线放在哪里?我需要在崩溃后立即执行(在报告崩溃之前)。你明白我的意思,在崩溃时我需要报告 myVariable。所以我想知道 ACRA 在崩溃时总是执行什么代码,所以我把这个 ErrorReporter 行放在
  • @Snake 你一针见血:是的,所有这些答案的一个主要缺陷是“你在哪里”的假设性质,例如,如果你将它添加到它刚刚发送的应用程序扩展类中“空”值(例如)如果用户已明确登录,但它没有“重新收集”我的 putCustomData("username", mysettings.getUsername()) 调用的用户名.. 如何让它做这就是问题所在。仍然感到羞耻的是,论坛上 100% 的人都平庸地忽略了这个阻碍道路的问题
  • PS:发布任何人和他的狗都可以在谷歌上找到的巨大的、巨大的网页链接不是答案——大多数 acra 文档都是错误的/旧的/过时的或死胡同与部分未使用的功能无关
  • 例如,这些链接都在谈论制作一个空白的“ReportSender”,没有关于如何在 ReportSender 中放入CustomData() 的代码
【解决方案2】:

如果你想报告额外的变量,最简单的方法是每次变量值发生变化时set them with the ErrorReporter's putCustomData method 。这样,如果发生崩溃,您将获得正确的值。

或者,您也可以通过implementing your own sender 执行代码。

【讨论】:

    猜你喜欢
    • 2012-06-06
    • 1970-01-01
    • 1970-01-01
    • 2013-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-31
    相关资源
    最近更新 更多