Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Acra在Android 5中不自动发送报告(棒棒糖)_Android_Crash Reports_Acra - Fatal编程技术网

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

Acra在Android 5中不自动发送报告(棒棒糖),android,crash-reports,acra,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 HttpSende

我正在使用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消息,然后自动发送崩溃报告(无需用户交互)。一切都很好,报告被发送到beckend,我可以在那里分析它们,直到最近,我才发现这对Android 5.X不起作用。但是,在4.4.4之前,它仍然适用于所有其他版本的android

我测试了它,但日志中没有错误或问题。看起来棒棒糖在ACRA发送事故报告之前就扼杀了整个过程。然而,我认为崩溃报告会在下一个应用程序启动时发送,但这也不会发生。还有其他人有这个问题吗?我怎样才能克服这个问题

我还发现的一点是,若我将模式设置为dialog,然后用户确认发送,那个么它就工作了。任何帮助都将不胜感激

我在LogCat中看到的最后一件事


Android框架有可能在您的应用程序有机会发送报告之前将其杀死

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);
}
但ACRA将在下一次应用启动时发送任何未发送的报告


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

看起来问题是,在我自己的reportSender的send方法中,我创建了一个新线程(),不知为什么,Android只是在那里剪切了应用程序,然后停止了发送。
在我的例子中,解决方案是:线程围绕着试图发送崩溃报告的代码。当我把线去掉后,它就工作了。

我在Lolipop上使用ACRA没有问题。像这样的事情很难确定,那么首先更新到最新版本并使用注释而不是自定义报表发送器怎么样?我有最新版本。不幸的是,你提出的建议不起作用。我还添加了我在logcat中看到的最后一件事。我的意思是删除所有自定义类并使用非常基本的@ReportsCrashes(formKey=“”,formUri=”怎么样http://.."). 基本上,我们的目标是找到对棒棒糖起作用的最低限度。是的,我确实这样做了…不起作用。是的,这正是我认为正在发生的事情。Android在应用程序发送报告之前将其杀死。我也知道ACRA应该在应用程序启动时发送任何未发送的报告,但不知何故它没有。但如果我将报告模式设置为Dialog,则ACRA会在下次启动时发送报告,但对于静默或toast模式,情况并非如此。您使用的是哪种版本的ACRA,并在启动时发布日志。解决方案是什么?您好,请检查发送崩溃报告的代码是否位于其他线程中。如果这是真的,试着摆脱它周围的线。这为我解决了问题。