Acra不会在Android 5(棒棒糖)中自动发送报告

时间:2015-04-17 18:06:44

标签: android crash-reports acra

我正在使用ACRA,我创建了一个 CustomReportSender 。在这个类中,我实现了send方法,我在其中自定义报告,然后连接到自定义后端URL并发送报告。

public void send(Context cnt, CrashReportData report) throws ReportSenderException {
   //code for customizing crash report    
   HttpSender sender = new HttpSender(Method.POST, Type.JSON, urlToSend, null);
   sender.send(cnt,report);
}

发送报告的方法是TOAST,这意味着用户获得显示的Toast消息,然后自动发送崩溃报告(无需用户交互)。一切都运行良好,报告被发送到我可以分析它们的地方,直到最近,当我发现这对Android 5.X不起作用时。但是它仍适用于所有其他版本的android,直到4.4.4。

我测试了它,但没有日志中的错误或问题。在ACRA设法发送崩溃报告之前,看起来棒棒糖正在杀死整个过程。但是,我会在下一个应用程序启动时发送崩溃报告,但这也不会发生。还有其他人有这个问题吗?我怎么能克服这个?

我还发现的一点是,如果我将模式设置为对话框,然后用户确认发送,那么它可以工作。任何帮助都会非常感激。

我在LogCat中看到的最后一些事情。

enter image description here

2 个答案:

答案 0 :(得分:0)

Android Framework可能会在有机会发送报告之前终止您的应用。

但ACRA 在下次应用启动时发送任何未发送的报告。

在启动时查看您的ACRA日志(在未发生的崩溃之后)。你应该看到它试图发送。

答案 1 :(得分:0)

看起来问题是,在我自己的reportSender的send方法中,我创建了一个新的Thread(),不知怎的,因此,Android只是在那里切断应用程序并停止发送。 在我的案例中的解决方案:线程是围绕试图发送崩溃报告的代码。删除线程后,它就可以工作了。