WOOOOW, THANK YOU, Emmanuel!!! :-) I used http://code.google.com/p/android-remote-stacktrace/ (the link in your page) and now I received some eMails telling me the exact line- number of a NullPointerException. Tomorrow, I will solve all the problems.
Greetings! Martin On 3 Feb., 18:08, Emmanuel <emmanuel.ast...@gmail.com> wrote: > Note that I made a blog entry to explain how I made a crash reporter > using email on my blog, there > :http://androidblogger.blogspot.com/2009/12/how-to-improve-your-applic... > > It's a very effective way to catch the bugs, and to find how they > happen. > > The fact that it is send by mail ( so the user should accept to send > it ) makes it really easy to do, you don't need to have a web site to > handle them, but most of the users won't send it. In my view, if > nobody sent me an crash report, I take it for granted there is no > common bug. If a bug is really common and happens often, it will be > sent ! > > Hope it helps, > > Emmanuel > > Ps : By the way, I don't fully understand why Flurry doesn't provide > the full call stack. They are so close, and they have done most of the > work to have a super useful tool, and they just stop one inch before > it... Strange... ( but it makes me feel good to have develop my own > crash reporter ) > > On Feb 3, 5:40 pm, Streets Of Boston <flyingdutc...@gmail.com> wrote: > > > > > This is not necessary, to catch every line of code. > > > Register an uncaught-exception-handler > > (Thread.setDefaultUncaughtExceptionHandler). Before you set it, get > > the current one. You may need to call it from your own uncaught- > > exception-handler. > > > In this handler, print out the stack-trace (and some other info such > > as OS-version, phone model, make, etc) to a file (on phone-memory or > > sd-card) > > > These above steps are the bare basics. > > > In my app, I added a Service and an Activity, both running in a > > different process than my app whose stack-traces i'm logging. If they > > would run in the same process, it woudn't work (calling a Service and > > Activity from a dying process). > > > The uncaught-exception-handling code binds to the Service > > (initialization) and upon a stack-trace dump, after having generated > > the file, it does a Service-request: > > > The Service starts the Activity that just shows a dialog asking the > > using to submit an error report or not. If the user answers 'Yes', > > then the Activity will read the file with the stack-trace info and > > send it to a web-server (Http). The web-server gets this request, > > generates an e-mail from it that is then sent to my inbox. > > > When the uncaught-exception-handler calls the service, it just kills > > and extis the process. If the handler could not bind to the Service or > > the Service-request failed, it calls the original default uncaught- > > exception-handler that then shows the common 'Force Close' dialog. > > > This has been working well for me and found a few bugs here and > > there :) > > > On Feb 3, 5:24 am, Martin <google-gro...@digle.de> wrote: > > > > Or is there another possibility to debug my game, while it is in the > > > market? > > > How can I intercept all the errors in my code to find out how I can > > > solve them? > > > > If nobody has an answer to this, I have to put a > > > try { > > > ...} catch (Exception e) { /* send this exception and line number over > > > > internet to me */ } > > > on EVERY line of code? > > > > For example: > > > > @Override > > > public void onCreate(Bundle savedInstanceState) { > > > > try { > > > DisplayMetrics dm = new DisplayMetrics(); > > > getWindowManager().getDefaultDisplay().getMetrics(dm); > > > Global.screen_width = dm.widthPixels; > > > Global.screen_height = dm.heightPixels; > > > Global.screen_width_factor = 320/Global.screen_width; > > > Global.screen_height_factor = 480/Global.screen_height;} > > > catch (Exception e) { /* send exception - METRICS */ } > > > > try { > > > > super.onCreate(savedInstanceState); > > > requestWindowFeature(Window.FEATURE_NO_TITLE); > > > this.getWindow().setFlags > > > (WindowManager.LayoutParams.FLAG_FULLSCREEN, > > > > > > WindowManager.LayoutParams.FLAG_FULLSCREEN );} catch (Exception e) { /* > > > send exception - window */ } > > > > try { > > > > setContentView(R.layout.main);} catch (Exception e) { /* > > > send exception - contentview */ } > > > > try { > > > > //Sound starten > > > SharedPreferences prefs = getSharedPreferences("options", > > > 0); > > > Global.bgmusic=prefs.getBoolean("music", true); > > > Global.soundeffects=prefs.getBoolean("soundeffects", > > > true);} catch (Exception e) { /* send exception - start sound */ } > > > > try { > > > > b_start = (Button) findViewById(R.id.b_start); > > > b_start.layout(120*Global.screen_width_factor, > > > 55*Global.screen_height_factor, > > > > > > (120+buttonwidth)*Global.screen_width_factor, (55+buttonheight)* > > > > } catch (Exception e) { /* send exception - startbuttoncreated */ } > > > > and so on.... > > > > or is there a better solution? > > > > Greetings, Martin > > > > On 3 Feb., 10:11, Martin <google-gro...@digle.de> wrote: > > > > > Hi! > > > > > I have a game in the market and with flurry analytics, I receive all > > > > my errors. Here are some of them: > > > > > 01/31/10 01:47:39 PM PST 0 class > > > > java.lang.IllegalArgumentException parameter must be a descendant > > > > of > > > > this view > > > > 02/02/10 12:40:41 PM PST 0 class > > > > java.lang.IllegalThreadStateException Thread already started. > > > > 01/26/10 09:25:36 PM PST 0 class > > > > java.lang.NullPointerException > > > > 1.0 (beta) uncaught Android > > > > 02/01/10 05:26:27 PM PST 0 class > > > > java.lang.OutOfMemoryError > > > > bitmap size exceeds VM budget 1.3 (beta) uncaught > > > > Android > > > > 01/29/10 10:23:10 AM PST 0 class > > > > java.lang.RuntimeException > > > > Adding window failed 1.0 (beta) uncaught Android > > > > 01/29/10 08:19:05 AM PST 0 class > > > > java.lang.RuntimeException > > > > Unable to start activity ComponentInfo{digle.de.LeonardFrog/ > > > > digle.de.LeonardFrog.AHighscore}: java.lang.NullPointerException > > > > 1.0 > > > > (beta) uncaught Android > > > > 01/27/10 01:09:35 AM PST 0 class java.lang.VerifyError > > > > digle.de.LeonardFrog.AHighscore 1.0 (beta) uncaught > > > > Android > > > > > I want to solve them but I need a logcat. There is the application > > > > "aLogcat" in the Market, which displays the logcat on the mobile, but > > > > I need the logcat of my users without telling them to download this > > > > app, because many people are lazy and won't do it. How can I get this > > > > logcat? Is there maybe a library, which sends me the logcat on error? > > > > > Greetings, Martin- Hide quoted text - > > > > - Show quoted text - -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en