Reputation: 840
I know it's hard to make a error free application but still i'm trying to make with less defects at least.
So when i googled i came to know we can ACRA can be used to send errors of Crashed applications.
I tried to throw my own user defined exception. I'm getting following error.
11-04 09:36:25.896: E/ACRA(625): Failed to send crash report for 1320379577000-approved.stacktrace 11-04 09:36:25.896: E/ACRA(625): org.acra.sender.ReportSenderException: Error while sending report to Google Form. 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): Caused by: java.net.SocketTimeoutException: Read timed out 11-04 09:36:25.896: E/ACRA(625): at org.apache.harmony.xnet.provider.jsse.NativeCrypto.SSL_read(Native Method) 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)
I guess i have made some mistake in form.. but cannot spot what it is
Upvotes: 1
Views: 3417
Reputation: 2048
Change timeout manually:
@ReportsCrashes(formKey = "xxxxxxxxxxxxxxx", socketTimeout = 30000)
Upvotes: 3
Reputation: 52956
You might get better answers on the ACRA mailing list.
Sending the logcat definitely works, but you might not want to add that permission in a production app, it may scare people away. Did you use a Google Docs form for the report? If so, the logcat will be in the LOGCAT column. Details are here.
Upvotes: 2