2016-11-21 2 views
0

В следующем коде я получаю данные исключения в выпущенном приложении. Это приложение не работает в режиме отладки - оно работает как выпущенное приложение на большом количестве телефонов.UncaughtExceptionHandler issue

То, что у меня здесь, работает отлично. Он помещает данные исключений в общую память, которые я отправляю себе в следующий раз, когда приложение запускается. Моя проблема в том, что данные, которые я получаю, не очень полезны. Это то, что производится. , ,

divide by zero StackTrace= [Ljava.lang.StackTraceElement;@7734137 Cause= null ex= java.lang.ArithmeticException: divide by zero 

private Thread.UncaughtExceptionHandler onBlooey = new Thread.UncaughtExceptionHandler() { 
     public void uncaughtException(Thread thread, Throwable ex) { 
       putPref("storedexception", "Exception: " + ex); 
     } 
}; 

Это не говорит мне многого. Есть ли способ получить стек? Что-нибудь, что скажет мне, где в программе происходит ошибка? Thanks, Dean

+0

http://stackoverflow.com/questions/1149703/how-can-i-convert-a-stack-trace-to-a-string, хотя ИМХО было бы гораздо лучше для вас принять существующее решение здесь, например [ACRA] (http://acra.ch/). – CommonsWare

ответ

0

К сожалению. Добавлено в ближайшее время. Разобрался ответ ...

private Thread.UncaughtExceptionHandler onBlooey = new Thread.UncaughtExceptionHandler() { 
     public void uncaughtException(Thread thread, Throwable ex) { 
       // quickly store the exception info and mail it to me nextime on startup 
      debugLog("found uncaught exception: " + ex, true); 
      StringWriter sw = new StringWriter(); 
      PrintWriter pw = new PrintWriter(sw); 
      ex.printStackTrace(pw); 
      String st = ""; 
      st = sw.toString(); // stack trace as a string 
      putPref("storedexception", "Exception: " + ex + " stacktrace: " + st); 
     } 
}; 
Смежные вопросы