Android – печать полного исключения backtrace для журнала

У меня есть блок try / catch, который генерирует исключение, и я хотел бы видеть информацию об исключении в журнале устройств Android.

Я прочитал журнал мобильного устройства с помощью этой команды с моего компьютера разработки:

/home/dan/android-sdk-linux_x86/tools/adb shell logcat 

Я попробовал это первым:

 try { // code buggy code } catch (Exception e) { e.printStackTrace(); } 

но это ничего не печатает в журнале. Жаль, потому что это очень помогло бы.

Лучшее, что я достиг:

 try { // code buggy code } catch (Exception e) { Log.e("MYAPP", "exception: " + e.getMessage()); Log.e("MYAPP", "exception: " + e.toString()); } 

Лучше, чем ничего, но не очень удовлетворительно.

Знаете ли вы, как распечатать полную обратную трассировку в журнале?

Благодарю.

 try { // code that might throw an exception } catch (Exception e) { Log.e("MYAPP", "exception", e); } 

Эта вспомогательная функция также хорошо работает, поскольку Exception также является Throwable .

  try{ //bugtastic code here } catch (Exception e) { Log.e(TAG, "Exception: "+Log.getStackTraceString(e)); } 
 catch (Exception e) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); PrintStream stream = new PrintStream( baos ); e.printStackTrace(stream); stream.flush(); Log.e("MYAPP", new String( baos.toByteArray() ); } 

Или … я знаю … что сказал EboMike.

e.printStackTrace () печатает его мне. Я не думаю, что вы правильно управляете логарифмом. Не запускайте его в оболочке, просто запустите

/home/dan/android-sdk-linux_x86/tools/adb logcat

 public String getStackTrace(Exception e){ StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); e.printStackTrace(pw); return sw.toString(); } 

Стандартный вывод и вывод ошибки по умолчанию направлены на / dev / null, так что все они потеряны. Если вы хотите зарегистрировать этот вывод, вам необходимо следовать инструкциям «Просмотр stdout и stderr», показанным здесь

В контексте Android я должен был передать исключение в строку:

 try { url = new URL(REGISTRATION_PATH); urlConnection = (HttpURLConnection) url.openConnection(); } catch(MalformedURLException e) { Log.i("MALFORMED URL", String.valueOf(e)); } catch(IOException e) { Log.i("IOException", String.valueOf(e)); } 
 try{ ... } catch (Exception e) { Log.e(e.getClass().getName(), e.getMessage(), e.getCause()); } 
  • FirebaseApp с именем не существует
  • Лучший способ реализовать View.OnClickListener в android
  • Как имитировать Android, убивающий мой процесс
  • Получение ошибки «Активность Java.lang.IllegalStateException была уничтожена» при использовании вкладок с ViewPager
  • Разница между fragmentом и fragmentацией
  • Предотвратить показ веб-страницы «веб-страница недоступна»
  • Исключение из памяти из-за большого размера растрового изображения
  • Как сделать панель инструментов прозрачной?
  • ListView пуст при использовании функции getFilter
  • android: создать круговое изображение с пикассо
  • Добавить тень в пользовательскую форму на Android
  • Interesting Posts

    «Ручная резьба» в Thunderbird?

    Разложение Холецкого с помощью OpenMP

    Как добавить и удалить Windows 10-контактный вход?

    Могут ли на жесткий диск (ноутбук) воздействовать магниты, например, наушники или сотовый телефон?

    Воспроизвести фильм с Windows Media на DLNA TV: «не удалось получить информацию о медиа с медиа-сервера»

    Avecto Privilege Guard – Как запустить из командной строки?

    Найдите и найдите ключ Microsoft Office 2010

    В каких обстоятельствах деструкторы C ++ не будут называться?

    Как программно нажать кнопку в WPF?

    Настройка VS Intellisense для вызовов ядра CUDA

    В чем разница между сервисом службы WCF и библиотекой услуг WCF?

    Возможно ли (и безопасно / надежно / не повреждать) использовать 20-контактный блок питания ATX с 24-контактной материнской платой ATX?

    Раздельные сборки ‘debug’ и ‘release’?

    Хостинг внешнего приложения в окне WPF

    Почему параметр типа Java не может иметь нижнюю границу?

    Давайте будем гением компьютера.