If you use ACRA (and you should)....

I just found these guys… figured I would let the rest of you know!


If you already have ACRA integrated, it is a 1 line change. Also, if you spring for their $99/month (too much for a lot of you, I know), you can upload your proguard mapping file and they will auto-un-obfustucate your tracebacks :slight_smile:

That’s a great service - I now use it for all of my apps. Haven’t been able to justify going for the non-free plans yet, but I probably will in the near future.

Also Google Analytics has now integrated a similar service, with their new SDK for apps. It will be interesting to see how this compares. So far I haven’t had a crash on any of my apps using this SDK though!

Wow, seriously, no crashes? How do you manage that? I have many weird and wonderful (or not) crashes, most of which are down to extreme corner cases, bizarre device configurations, software incompatibilities and the like. While its probably possible to be an expert and code robustly for all these scenarios, its beyond me nor I suspect would it be worth my investment in time-. How do you manage? The problem I have is to much noise in my ARCA reports and I wish I could figure out a way to easily see the real errors, the ones I can do something about.

In my BugSense apps I’ve got plenty of errors - normally get a few emails every day from them. I was actually referring to some of my new apps, which haven’t really got any downloads yet.

So never fear - I probably have just as many bugs as you! Just no users to trigger them :slight_smile:

I used to get so many errors a day that I removed the formid in ACRA, so it would submit to /dev/null … yay! No more errors.

Seriously, every weird device and other POS cheap Walmart hardware with a screwed up half implemented Android is what you will be dealing with :\

Any every time a user presses a button on slow hardware and the OS decides to go GC at that point and your app gets zero CPU time, then Android decides it is ‘not responding’ … well, you get the point :slight_smile:

OK, good to hear I’m not the only developer with lots of random errors. However, I’d be curious if there are any better free solutions to handling the output from ACRA. Google spreadsheets can become a drag with too many errors and I get too many for BugSense to handle on their free plan.

Yeah, I mostly deal with errors that are clear (NullPointer etc.) and leave the rest alone as long as they are not common. ACRA shows what strange devices people use sometimes. I was using OpenGL 2.0 and I got crashes from devices with OpenGL 1.0/1.1 only that were falsly claiming they support OpenGL 2.0…

For the rest of you, here is an error I got recently… “Transaction too large”.

java.lang.RuntimeException: Adding window failed
at android.view.ViewRootImpl.setView(ViewRootImpl.java:697)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:301)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:215)
at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:140)
at android.view.Window$LocalWindowManager.addView(Window.java:537)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2521)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2000)
at android.app.ActivityThread.access$600(ActivityThread.java:128)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4514)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:980)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:747)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.os.TransactionTooLargeException
at android.os.BinderProxy.transact(Native Method)
at android.view.IWindowSession$Stub$Proxy.add(IWindowSession.java:516)
at android.view.ViewRootImpl.setView(ViewRootImpl.java:687)