#android #debugging #logcat
#Android #отладка #logcat
Вопрос:
Я пытаюсь отладить код в моей первой программе для Android. Я начал использовать обычный println, и он работал в более раннем методе main (onCreate), показывая результаты в LogCat. Однако, похоже, что это не работает ниже, поэтому я начал пытаться выполнить Log.i / Log.d безрезультатно. Я в основном пытаюсь увидеть, действительно ли программа выполняет приведенный ниже метод — хотя в LogCat не создаются инструкции печати, я думаю, что код действительно выполняется, поскольку, когда я нажимаю кнопку «создать» или «выйти» в моем приложении, кажется, что он попадает в правильное место в инструкции case и запускает finish ();
Была бы очень признательна любая помощь в получении чего-либо напечатанного в LogCat, чтобы я мог видеть, что происходит.
Спасибо
Эд Райан
public void onClick(final View v) {
System.out.println("Here in - onClick");
switch (v.getId()) {
case R.id.about_button:
System.out.println("Here in - onClick1");
Intent i = new Intent(this, About.class);
startActivity(i);
break;
case R.id.new_button:
System.out.println("Here in - onClick2");
finish();
//openNewGameDialog();
break;
case R.id.exit_button:
Log.i("onDisabled","info");
Log.d(TAG, "onDisabled");
System.out.println("Here in - onClick3");
finish();
break;
}
}
}//end class
Комментарии:
1. Получаете ли вы вообще какие-либо выходные данные любого рода от LogCat? иногда он теряет синхронизацию, и вам нужно ее повторно синхронизировать (иногда достаточно закрыть и открыть окно logcat).
2. Создайте фильтр в вашем LogCat (зеленая кнопка ) Имя фильтра: "Sysout" - по тегу журнала: "System.out" затем нажмите OK, проверьте эту вкладку для вашего системного выхода, чтобы убедиться, что вы его не пропустите!
3. Хотя могут возникнуть и другие проблемы, переключитесь на Log.whatever методы более "в стиле Android"
Ответ №1:
Я испытал это при использовании LogCat в Eclipse. Это происходит, когда устройство отключается или теряет фокус, или когда вы выполняете отладку с использованием 2 или более разных устройств / эмуляторов.
Попробуйте следующее:
- Перейдите в перспективу DDMS и дважды щелкните приложение, которое вы отлаживаете, или, по крайней мере, устройство. Вы должны увидеть, как вкладка LogCat заполняется новыми сообщениями.
- Удалите все устройства, кроме того, с которым вы работаете в данный момент.
- Попробуйте снова просто использовать функции Log.*.
- Установите фильтр LogCat на Debug или Verbose.
Комментарии:
1. Спасибо тебе, Джереми. Я попробую это. Очень высоко ценится.
2. Это сработало. Для других убедитесь, что не выбран Устаревший журнал Cat (значок Android стоит)
Ответ №2:
Если все остальное терпит неудачу:
Я сделал все вышеперечисленное и не смог понять, что было не так,
Тест с:
adb logcat
чтобы выяснить, что мои записи были действительны в logcat, но это были причуды adt.
Исправить:
Перезапустите eclipse
Это было единственное, что исправило это.
Ответ №3:
Джереми Эдвардс на правильном пути. Вам нужно открыть DDMS perspective и щелкнуть по названию вашего устройства. Затем вернитесь к своей основной перспективе. Иногда журнал по-прежнему показывает не то, что вы хотите видеть, поэтому выберите обведенную кружком букву "V" над logcat. Это отобразит подробный режим logcat. В противном случае вы можете отфильтровать его с помощью i или d, которые ассоциируются с Log.i или Log.d соответственно. Затем прокрутите до нижней части logcat, чтобы просмотреть самые последние сообщения с устройства.
Комментарии:
1. Спасибо тебе, Фил. Я попробую. Очень признателен.
2. Нет проблем. Дайте мне знать, как это работает, проголосовав за мой ответ. Рад, что смог помочь!
Ответ №4:
Одно уточнение к ответу Джереми. В подсказке, где он сказал...
"Удалите все устройства, кроме того, с которым вы работаете в данный момент".
У меня это сработало не сразу, но после того, как я это сделал и вошел в:
Запуск> Конфигурации отладки> цель (вкладка справа)
и щелкнул флажок рядом с устройством, оно работало нормально. Я не уверен, требовались ли как удаление устройств, так и установка флажка, или было бы достаточно просто установить флажок, но я думаю, пока это работает, все хорошо.
Ответ №5:
Если вы пытаетесь просмотреть выходные данные AVD в Eclipse, иногда Eclipse и эмулятор отключаются. Обычно, если вы выполняете эти команды, все проясняется:
adb kill-server
adb start-server
Откройте просмотр Устройств и убедитесь, что вы видите свое устройство / AVD.
Комментарии:
1. Спасибо, Тед. Я попробую это. Очень признателен.