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