我知道很难做出一个没有错误的应用程序,但我仍然试图减少缺陷,至少。
所以当我用谷歌搜索时,我才知道我们可以用ACRA来发送 崩溃的应用程序的错误。
我试图抛出自己的用户定义的异常。我收到了以下错误。
11-04 09:36:25.896:E / ACRA(625):无法发送崩溃报告 1320379577000-approved.stacktrace 11-04 09:36:25.896:E / ACRA(625): org.acra.sender.ReportSenderException:发送报告时出错 Google表单。 11-04 09:36:25.896:E / ACRA(625):at org.acra.sender.GoogleFormSender.send(GoogleFormSender.java:64)11-04 09:36:25.896:E / ACRA(625):at org.acra.ErrorReporter.sendCrashReport(ErrorReporter.java:850)11-04 09:36:25.896:E / ACRA(625):at org.acra.ErrorReporter.checkAndSendReports(ErrorReporter.java:960) 11-04 09:36:25.896:E / ACRA(625):at org.acra.ErrorReporter $ ReportsSenderWorker.run(ErrorReporter.java:142) 11-04 09:36:25.896:E / ACRA(625):引起: java.net.SocketTimeoutException:读取超时时间11-04 09:36:25.896: E / ACRA(625):at org.apache.harmony.xnet.provider.jsse.NativeCrypto.SSL_read(母语 方法)11-04 09:36:25.896:E / ACRA(625):at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl $ SSLInputStream.read(OpenSSLSocketImpl.java:788) 11-04 09:36:25.896:E / ACRA(625):at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:103) 11-04 09:36:25.896:E / ACRA(625):at org.apache.http.impl.io.AbstractSessionInputBuffer.readLine(AbstractSessionInputBuffer.java:191) 11-04 09:36:25.896:E / ACRA(625):at org.apache.http.impl.conn.DefaultResponseParser.parseHead(DefaultResponseParser.java:82) 11-04 09:36:25.896:E / ACRA(625):at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:174) 11-04 09:36:25.896:E / ACRA(625):at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:179) 11-04 09:36:25.896:E / ACRA(625):at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:235) 11-04 09:36:25.896:E / ACRA(625):at org.apache.http.impl.conn.AbstractClientConnAdapter.receiveResponseHeader(AbstractClientConnAdapter.java:259) 11-04 09:36:25.896:E / ACRA(625):at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:279) 11-04 09:36:25.896:E / ACRA(625):at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:121) 11-04 09:36:25.896:E / ACRA(625):at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:421) 11-04 09:36:25.896:E / ACRA(625):at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555) 11-04 09:36:25.896:E / ACRA(625):at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487) 11-04 09:36:25.896:E / ACRA(625):at org.acra.util.HttpRequest.sendPost(HttpRequest.java:109)11-04 09:36:25.896:E / ACRA(625):at org.acra.util.HttpRequest.sendPost(HttpRequest.java:80)11-04 09:36:25.896:E / ACRA(625):at org.acra.util.HttpUtils.doPost(HttpUtils.java:59)11-04 09:36:25.896: E / ACRA(625):at org.acra.sender.GoogleFormSender.send(GoogleFormSender.java:62)
我想我在形式上犯了一些错误但是无法发现它是什么
答案 0 :(得分:3)
手动更改超时:
@ReportsCrashes(formKey = "xxxxxxxxxxxxxxx", socketTimeout = 30000)
答案 1 :(得分:2)
您可以在ACRA邮件列表上获得更好的答案。
发送logcat肯定有效,但您可能不想在生产应用中添加该权限,这可能会吓跑人们。您是否在报告中使用Google文档表单?如果是这样,logcat将在LOGCAT列中。详细信息为here。