acra - 发送自定义消息

时间:2015-07-30 13:18:58

标签: android acra

我尝试用acra(并且不会崩溃我的应用程序)使用这两行

发送自定义数据
ACRA.getErrorReporter().putCustomData("myKey", "myValue");
ACRA.getErrorReporter().handleException(null);

但在我收到的报告中只是:

Report requested by developer

问题是在我的报告中没有“myKey”或“myValue”。我该如何解决这个问题?也许问题是我没有包含一些特定的报告字段?

之后我尝试了

ACRA.getErrorReporter().handleException(null);

它和上面2行一样工作?

2 个答案:

答案 0 :(得分:0)

ACRA旨在捕获未处理的异常。它还提供静默发送已处理异常的功能。发送null超出了其设计参数。

尝试发送实际例外。

答案 1 :(得分:0)

我做了一些解决方法,对由它的异常发送的特定消息进行分组。我引入了“FakeException”并删除了堆栈跟踪,因此消息会更小。

switch (code) {
  case 200:
    switch (status) {
      case 'EXISTS':
      case 'UPDATED':
        $alreadyExistsMessage.show();
        break;
      case 'ERROR':
        $wrongFormatMessage.show();
        break;
    }
    break;
  case 201:
    redirectOnSuccess(data);
    break;
  default:
    $wrongFormatMessage.show();
    break;
}

现在您可以创建另一个扩展FakeException的异常并执行以下操作:

public class FakeException extends Exception {
    @Override
    public Throwable fillInStackTrace() {
        return null;
    }

    @Override
    public void setStackTrace(StackTraceElement[] trace) {
        super.setStackTrace(null);
    }
}

下图显示了Acralyzer中的这份报告(很棒的软件,绝对使用它)。

Fake exception report