Logcat не отображает мои вызовы журнала


114

Я полный новичок в программировании для Android и хотел узнать, как отлаживать свои приложения. Мне кажется, что мои вызовы Log.i | d | v не отображаются в LogCat.

Вот код, который я использую. Как видите, я определил константу LOG_TAG, но не могу найти ее в LogCat. Я также импортировал android.util.Log И я убедился, что в моем AndroidManifest у меня для параметра «debuggable» установлено значение TRUE.

Я также проверил http://developer.android.com/reference/android/util/Log.html без какой-либо удачи в решении этой проблемы.

Что я делаю не так? Я вообще ищу в нужном месте? Я пробовал использовать перспективы DDMS и Debug без всякой удачи. Любая помощь этому новичку будет принята с благодарностью. Спасибо.

Моя среда: Windows XP IDE = Eclipse Version: 3.6.1, Build id: M20100909-0800 Emulator = указывает на android sdk 2.1 api 7

// очень простой код HELLO World с парой вызовов Log.i

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

public class debugger extends Activity {
    private static final String LOG_TAG = "debugger";

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        Log.i(LOG_TAG, "line 13");
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Log.i(LOG_TAG, "CREATING NOW");
    }
}

Не похоже, что вы делаете что-то не так, вы уверены, что ваша Activity запускается? Установлены ли у вас какие-либо фильтры в представлении logcat? Вы пробовали версию logcat для командной строки? (adb logcat)
Шерил Саймон

Да, попробовал использовать командную строку и вывел в текстовый файл, но все равно не нашел. Я знаю, что действие началось, потому что я вижу в эмуляторе сообщение «Hello World». Я попытался просмотреть logcat с фильтрами и без них, и все равно не повезло.
Cavachon

Попробуйте использовать команду adb logcat в командной строке и ничего не фильтруйте предварительно. Я почти уверен, что ваш код работает и печатается в журнале.
Хейкки Тойвонен

LogCat вообще работает? Например, вы видите записи журнала из других приложений (например, системных приложений)?
Вит Худенко

Это может быть конкретное устройство. иногда нам нужно включить журналы из скрытого меню телефона stackoverflow.com/a/43999262/2783229
nitesh

Ответы:


143

При использовании Eclipse в перспективе DDMS убедитесь, что выбрано и выделено правильное устройство (предположительно, emulator-xxxx). Только тогда вы получите вывод logcat в представлении logcat.

Кроме того, плагин для Android немного странный и иногда показывает только последнюю строку в представлении logcat. Если это произойдет, попробуйте очистить журнал. После этого вы должны снова получить все записи журнала (у меня все равно работает).


Да, все проблемы у меня тоже были. Если вы прокручиваете в представлении Logcat, оно не будет автоматически прокручиваться с будущими обновлениями, пока вы не прокрутите назад вниз.
Майк Йоки,

2
Ха! Некоторое время я боролся с этим. Открыл DDMS и выбрал старый эмулятор. Странно, почему он не используется по умолчанию для текущего эмулятора.
Will Curran

Ответ ddewaele решил мою проблему, вам просто нужно, чтобы LogCat находился в фокусе. В качестве примечания: вам не нужно менять перспективу, чтобы открыть меню устройств. Просто зайдите в Window >> Show View >> Other >> Android >> Devices, чтобы открыть панель устройств,
Джей

@yock Я считаю, что это сделано намеренно, поскольку предполагается, что вы хотите остановиться и прочитать в том месте, куда вы прокрутили.
Майкл Миор,

1
Хахаха, я такой глупый, что не знаю, что такое DDMS и даже где его найти.
Neon Warge

71

Если все остальное терпит неудачу:

Я сделал все вышеперечисленное и не мог понять, что не так,

Тест с:

adb logcat

чтобы выяснить, что мои записи действительно были в logcat, но это были причуды adt.

Fix:

Перезапустить затмение

Это было единственное, что его исправило.


1
Это работает, но я не могу перезапускать Eclipse, так как эта проблема возникает у меня часто. Есть ли у кого-нибудь лучшее решение?
Халед Аланези

@KhaledAlanezi тогда следует рассмотреть возможность использования logcat из командной строки или Windows PowerShell (лучше).
Дирадж Бхаскар,

1
Я просто перезапускаю eclipse каждый раз, когда это происходит, и это всегда решает проблему. обычно это случается раз в день, но я уже привык разочаровываться в затмении ..
программист

2
@programmer, больше не разочаровывайся в eclipse, перейди в Android Studio, друг мой :)
Дирадж Бхаскар,

1
Я использую эмулятор на удаленном компьютере, перезапуск eclipse не работает. Logcat ничего не показывает, но adb logcatэто хороший совет, он работает, так что голосуйте за.
soger

12

У меня была такая же проблема с использованием Android Studio, и мне удалось обойти ее, выбрав No Filtersполе выбора в правом верхнем углу LogCat. Сделав это, я начал получать все журналы Android в фоновом режиме в LogCat, включая отсутствующие вызовы журнала.

введите описание изображения здесь



6

Я понял, что автоматически импортирую com.sileria.Log (из какого-то библиотечного проекта) вместо android.util.Log , где последний был правильным. Также проверьте свой импорт.


3

Я заметил, что Eclipse иногда выдает исключение при запуске приложения для Android, после чего LogCat перестает обновляться. Я исправил это, просто перезапустив Eclipse. Я не уверен, пробовали ли вы это, и я знаю, что это далеко не оптимальное решение, но я подозреваю, что в плагине Eclipse все еще есть несколько ошибок, которые нужно исправить.


3

Самый простой способ:

Проверьте в своем окне logcat - кнопка ПАУЗА В ВЕРХОМ ПРАВОМ углу || (Приостановить получение новых сообщений logcat)

Несколько кликов + в конце концов перезапустите eclipse (обычно работает в моем случае)


3

Мне нужно было перезапустить службу adb с помощью команды adb usb

До этого я вел все журналы и мог отлаживать, но не получал свои собственные строки журнала (да, я получал системный журнал, связанный с моим приложением).


У меня также есть это - отсутствие собственных строк журнала. Но это не помогло :(
Ixx

2

Вы можете не видеть журналы по ряду причин, большинство из которых перечислены ниже. Вот несколько шагов, чтобы проверить большинство причин:

  1. Убедитесь, что в вашем AndroidManifest.xml нет "android: debuggable =" false "
  2. Убедитесь, что ваш logcat не приостановлен, и убедитесь, что вы прокручены вниз
  3. Ваши фильтры должны быть либо без фильтров, либо ваше текущее приложение
  4. В списке устройств logcat выбрано правильное устройство.
  5. Если вы не получаете никаких сообщений, попробуйте перезапустить adb. Вы можете сделать это из Android Studio, щелкнув значок «перезапустить», он находится сразу после значка печати для logcat и выглядит как зеленая изогнутая стрелка, выходящая из коробки. Если вы его не видите, наведите указатель мыши на «>>», который продолжает меню значков, когда логарифм слишком мал.

2

В Android Studio: нажмите зеленую стрелку вправо, чтобы перезапустить ведение журнала; Если он не отображается, щелкните значок >>, чтобы найти его.


1

Я тоже новичок в Android-Eclipse. Вот что мне потребовалось, чтобы сообщения LogCat отображались в Eclipse: 1: добавьте это в класс, в котором вызывается сообщение logcat: private static final String TAG = "MyActivity"; (согласно документации здесь )

2: добавьте этот Log.i (ТЕГ, «inLayout - готово»); когда вы хотите отобразить сообщение

Если описанное выше не работает, выключите Eclipse, перезапустите его и перезапустите свой проект.

Тогда он должен работать.


1

Есть еще одна вещь, на которую следует обратить внимание:

В верхней правой части logcat есть раскрывающаяся таблица для фильтрации сообщений по типу. Убедитесь, что он находится на том уровне, который вы ищете (если он будет на уровне assert, он, скорее всего, оставит ваш logcat пустым).


1

Перейдите в диспетчер задач и завершите процесс adb.exe. Снова запустите затмение.

или

попробуйте adb kill-server, а затем команду adb start-server .


1

Возможно, это неправильно и немного дольше, но я решил эту проблему (Android Studio) с помощью этого:

System.out.println("Some text here");

Как это:

try {
       ...code here...
} catch(Exception e) {
  System.out.println("Error desc: " + e.getMessage());
}

1

Я потратил на это дело несколько часов. Я видел только логи сенсорных клавиш. Ничего более. Проблема была в ... смартфоне. После перезагрузки все было ОК. Возврат неисправности из-за отключения кабеля. Пришлось перезапустить его снова. Похоже, что USB-соединение Android не очень хорошо продумано.


Спасибо! Собственно, это была настройка USB в быстром меню телефона ... что касается отладки по USB. У меня появилась привычка переходить с зарядки только на передачу файлов. НО, только зарядка заставила работать лог. Я как раз возвращаюсь к программированию под Android через несколько лет, и это действительно сильно затрудняло мое обучение.
wwfloyd

Тогда я получал только некоторые записи ... все, что недавно было добавлено, игнорировалось. Получил, что отсортировано с помощью Clean and Rerun в Android Studio.
wwfloyd


0

Используя SDK 4.0.3, вы должны явно выбрать его в конфигурациях отладки> проект> цель, иначе он никогда не будет отображаться при использовании Eclipse Indigo (3.7). Конечно, следует перезапуск затмения.


0

У меня также была проблема с просмотром простого вывода журнала в logcat. Моя проблема была решена, когда я установил последнюю версию JDK. Я просто установил новую машину для разработки, у меня была установлена ​​только JRE, и установка JDK сработала для меня.


0

Ни один из других ответов не помог мне, но это сработало:

Я удалил свой проект из своей рабочей области, а затем удалил все, что начиналось с точки (.settings, .project и т. Д.) Из папки проекта. Затем я повторно импортировал прогноз. Мне не хватает некоторых настроек и точек останова, но, по крайней мере, это работает.


0

Я столкнулся с этой проблемой, и, похоже, ничего не работало, пока я не переместил вызов журнала в обработчик. Теперь это работает каждый раз, где бы вы ни находились.


0

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


0

В моем случае мне пришлось удалить эту строку:

    <application
         android:debuggable="false"  <!-- Remove this line -->
         ..../>

Из тега приложения в моем файле манифеста.


0

Лучшим решением для меня было перезапустить сервер adb (пока я включил интеграцию ADB в студии Android - Инструменты - Android - проверено). Чтобы сделать это быстро, я создал adbr.batфайл внутри android-sdk\platform-toolsкаталога (где он adb.exeнаходится) с этим внутри:

adb kill-server
adb start-server

Поскольку у меня есть эта папка в системной переменной PATH, всегда, когда мне нужно перезапустить adbиз студии Android, я могу писать только в терминал, adbrи это делается.

Другой вариант сделать это - через Android Device Monitor на вкладке «Устройства» - меню после щелчка по маленькой стрелке вправо - «Сбросить adb» .


0

Для eclipse: 1) Перейдите в перспективу ddms. 2) Убедитесь, что выбрано правильное устройство. 3) Если он уже выбран и журналы не отображаются, перезапустите ABD. * Надеюсь, это решит.


0

Я перезапустил службу ADB с помощью «adb usb» и решил проблему. Фактически, только одно из моих действий больше не регистрировалось. Все остальные делали журналы. После перезапуска adb все снова работает как шарм. Для других людей, которые ищут другое решение: adb kill-server, adb start-server в CLI часто также решает вашу проблему.


0

закройте приложение принудительно, как только это снова запустит LogCat ...

используйте это для принудительного закрытия: D

setContentView(BIND_AUTO_CREATE);

0

иногда проблема не с ПК, а с другой стороны IDE, ADB и т. д., но она возникает из-за вашего устройства, которое не отправляет журналы в ADB, поэтому, если вы попробовали все способы, упомянутые ранее, но ваш logcat все еще пуст, попробуйте перезапустить устройство и попробуйте еще раз. Я пробовал все способы, упомянутые выше, и ни один из них не работал, но после перезапуска на моем телефоне logcat работал как по волшебству


Как проверить, может ли устройство отправлять логи в ADB?
JCarlosR

@JCarlos попробуйте перезапустить ваше устройство, если ни одно из вышеперечисленных решений не
помогло

AndroidMonitor показывает сообщения, когда я использую Logи запускаю приложение со своего смартфона, но оно не работает с моих умных часов. Я смотрел настройки, но вроде все хорошо.
JCarlosR

0

У меня есть эта проблема и исправлена, String TAG без пробела:

"мой тег" // отмечая показать
"my_tag" // это нормально


0

В моем случае мне просто нужно было добавить имя в строку. Сначала у меня было пробел между скобками

private static final String TAG = " ";

но после добавления имени он работал отлично.

private static final String TAG = "oncreate";

0

После обновления до Android 3.6.1 я сталкивался с этой проблемой несколько раз. Единственное, что работает в моем случае, это ПЕРЕЗАПУСК УСТРОЙСТВА.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.