我尝试用acra(并且不会崩溃我的应用程序)使用这两行
发送自定义数据ACRA.getErrorReporter().putCustomData("myKey", "myValue");
ACRA.getErrorReporter().handleException(null);
但在我收到的报告中只是:
Report requested by developer
问题是在我的报告中没有“myKey”或“myValue”。我该如何解决这个问题?也许问题是我没有包含一些特定的报告字段?
之后我尝试了
ACRA.getErrorReporter().handleException(null);
它和上面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中的这份报告(很棒的软件,绝对使用它)。