Intereting Posts
Eclipse / Java – значения в R.string. * Return int? Android gradle src / androidTest / res / layout / mylayout.xml не найден в mypackage.R Возможно ли для Android VM собирать статические переменные без уничтожения всего приложения Android? Android: Как обрабатывать сообщение об ошибке с сервера с помощью Volley? Android – Потеря USB-данных (hi-speed) Styling AppCompat SearchView с AppCompat 22.1.0 не работает Android: как использовать Wi-Fi-сеть для определенных хостов, но использовать телефон. Мобильная сеть для всего остального. Разрешение API Youtube 403 Запрещенная ошибка Сбой переполнения, не работающий на Android Android Studio – проблемы с Lollipop, ADB и Genymotion: устройства не появятся. «Сервер adb устарел. убийство …» Вход в Google Android с Firebase – statusCode DEVELOPER_ERROR Строки Facebook не имеют перевода по умолчанию Шаблон MVC на Android Обнаружение сообщений тоста Как вызвать щелчок или отправить событие при совместном использовании данных в других приложениях на Android?

Отображение большего количества строк в Logcat

В настоящее время я работаю над Android-приложением, которое использует «JSON» в качестве ответа от сервера. Обычно я работаю над ответом JSON. Но теперь у меня проблема с logcat, если строка ответа JSON очень длинная, больше, чем символ x (я точно не знаю, сколько строк max может отображаться logcat), некоторые строки JSON отсутствуют ,

Хотя он все еще может дать мне вывод, мне нужна информация о строке JSON, которая передается с сервера.

Есть ли возможность отображать больше строк в logcat? Подобно увеличению буфера или любого параметра, который я мог бы использовать, чтобы увеличить максимальную длину строки, которая может отображаться с помощью logcat.

Solutions Collecting From Web of "Отображение большего количества строк в Logcat"

Ужасно, но это делает работу:

public static void longInfo(String str) { if(str.length() > 4000) { Log.i(TAG, str.substring(0, 4000)); longInfo(str.substring(4000)); } else Log.i(TAG, str); } 
 if(xml.length() > 4000) { for(int i=0;i<xml.length();i+=4000){ if(i+4000<xml.length()) Log.i("rescounter"+i,xml.substring(i, i+4000)); else Log.i("rescounter"+i,xml.substring(i, xml.length())); } } else Log.i("resinfo",xml); 

Вот как я это сделал.

Если вы не используете eclipse, или вы только @Nanne ответ не работает для вас, я могу думать только по двум альтернативам:

  1. Лучший, но более сложный, я полагаю, ваш JSON составлен с помощью каких-то «итераций» (объектов JSON и / или массивов), поэтому вы можете анализировать и перемещать JSON и печатать каждый элемент в LogCat отдельно
  2. Легче, но также уродливее, разделите строку JSON на подстроки и напечатайте каждую подстроку в LogCat (здесь вы можете найти разные способы разделения String)

Edit: Другая возможность: записать JSON в файл на SD-карте, например журнал, а затем извлечь файл, когда вы хотите проверить ответ

Некоторые из наших API RESTful возвращают очень длинные ответы JSON. Вот способ, который форматирует их для LogCat:

 private static final int LOGCAT_MAX_LENGTH = 3950; ... private void logLongJsonStringIfDebuggable(String s) { if (BuildConfig.DEBUG) { while (s.length() > LOGCAT_MAX_LENGTH) { int substringIndex = s.lastIndexOf(",", LOGCAT_MAX_LENGTH); if (substringIndex == -1) substringIndex = LOGCAT_MAX_LENGTH; Log.d(TAG, s.substring(0, substringIndex)); s = s.substring(substringIndex).trim(); } Log.d(TAG, s); } } 

Почему бы не использовать logcat из командной строки?

Я сомневаюсь, что это будет то, что вы ожидаете, но почему бы не попробовать?

Выдать команду

./adb -e logcat

Из каталога с adb. Это для эмулятора. Заменить -e на -d для устройства

В общем случае, если вы хотите получить вывод в Logcat, вы должны использовать команду «Log».

Пример:

 Log.d(TAG,"OUTPUT"): 

D = отладка
TAG = строка, которую вы определяете, отображается в поле Logcat в столбце перед «нормальным» выходом
OUTPUT = материал, который вы хотите распечатать

Журнал – это журнал, который вы можете использовать для печати сообщений в лог-кате. Вы можете читать сообщения в режиме реального времени, если вы запускаете logcat в DDMS (см. Далее). Общие методы ведения журнала включают в себя: v (String, String) (verbose), d (String, String) (debug), i (String, String) (информация), w (String, String) (предупреждение) и e (String, String ) (ошибка).

Для дополнительной информации:

http://developer.android.com/guide/developing/debug-tasks.html

РЕДАКТИРОВАТЬ:

То, что я считаю раньше, чтобы проверить некоторые вещи с выходами, вы не должны использовать:

 System.out.println("JSON stuff"); 

Вместо этого вы должны использовать в своем коде:

 // Values just as example private static void string TAG = "+++JSON+++"; ... Log.d(TAG,"JSON stuff in here"); ... 

Он будет отображаться в Logcat. Я не знаю, почему, но это не лучший способ. Подобно этому вы также можете отобразить сообщение об ошибке:

 Log.e(...); 

Он изменит цвет вашего вывода в Logcat, поэтому вы можете увидеть его лучше, если, например, возникла ошибка.