Right, quite a dramatic title, but we’re actually shocked at how poor Corona works on Android. At least it looks like that after we started logging device crashes.
Being Enterprise users, we’ve been able to implement a crash log plugin, Crittercism.com, that overtakes the Corona Error Handler and the Android error handler, and posts all crashes and lua errors to the crittercism system. It gives us a great knowledge of what our users struggle with.
Hundreds of exceptions happens every day, related to all kinds of (CoronaActivity) crashes.
Can someone @ Coronalabs tell us what in the world is going on?
Do you know how fragile your implementation is?
Is the list of exceptions below known to you already?
What steps have you taken and are you taking to make the Android part more robust?
Why are we even having crashes caused by exceptions in the mix between the Android runtime and the Corona runtime? We, your users, would expect this to be totally robust.
Besides, we wonder how serious these exceptions actually are. It might be that they can be ignored, because they don’t actually take the app down or come forward as a crash to the users. I doubt it though, they look serious. Can someone shed some light?
Here’s a short list of the most common exceptions:
java.lang.RuntimeException: Unable to pause activity {xx.xx.xxx/com.ansca.corona.CoronaActivity}: java.lang.NullPointerException
java.lang.NullPointerException
at com.ansca.corona.NativeToJavaBridge.callGetBytesFromFile(NativeToJavaBridge.java:755)
java.lang.IllegalArgumentException: View not attached to window manager
android.app.RemoteServiceException: Bad notification posted from package xx.xx.xxx: Couldn't create icon: StatusBarIcon(pkg=xx.xx.xxx id=0x7f020001 level=0 visible=true num=0 )
java.lang.RuntimeException: eglMakeCurrent failed.
at android.opengl.derived.SwapGLSurfaceView$EglHelper.createSurface(SwapGLSurfaceView.java:709)
java.lang.UnsupportedOperationException
at android.view.GLES20Canvas.clipPath(GLES20Canvas.java:302)
java.lang.RuntimeException: createWindowSurface failed
at android.opengl.derived.SwapGLSurfaceView$EglHelper.createSurface(SwapGLSurfaceView.java:701)
java.lang.NullPointerException
at com.ansca.corona.CoronaActivity.onKeyUp(CoronaActivity.java:1945)
java.lang.NullPointerException
at com.ansca.corona.CoronaActivity.onKeyDown(CoronaActivity.java:1893)
java.lang.NullPointerException
at com.ansca.corona.CoronaActivity.onTouchEvent(CoronaActivity.java:1541)
android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@41327d50 is not valid; is your activity running?
java.lang.RuntimeException: Unable to pause activity {xx.xx.xxx/com.ansca.corona.CoronaActivity}: java.lang.NullPointerException
java.lang.RuntimeException: createWindowSurface failed EGL\_BAD\_ALLOC
java.lang.NoSuchMethodError: <init><br>at android.database.sqlite.SQLiteProgram.release(SQLiteProgram.java:183)<br> [import]uid: 21746 topic_id: 35144 reply_id: 335144[/import]
