Logcat не відображає мої дзвінки з журналу


114

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

Ось код, який я використовую. Як ви бачите, я визначив константу LOG_TAG, але не можу знайти її в LogCat. Я також імпортував android.util.Log І я переконався, що в моєму AndroidManifest я встановив "налагоджувальний" TRUE.

Я також перевірив http://developer.android.com/reference/android/util/Log.html без удачі у вирішенні цього питання.

Що я роблю неправильно? Я навіть шукаю в потрібному місці? Я спробував використовувати перспективу DDMS та Debug, без будь-якої удачі. Будь-яка допомога цій нобі буде дуже вдячна. Дякую.

Моє середовище: Windows XP IDE = Eclipse Версія: 3.6.1, ідентифікатор збірки: M20100909-0800 Емулятор = вказівка ​​на android sdk 2.1 api 7

// дуже базовий код світу HELLO з парою дзвінків 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");
    }
}

Це не схоже на те, що ви робите щось не так, чи впевнені ви, що ваша діяльність починається? Чи встановлені будь-які фільтри у вікні logcat? Ви спробували версію командного рядка logcat? (adb logcat)
Cheryl Simon

Так, спробували командний рядок і вивели файл txt, але його все ще не вдалося знайти. Я знаю, що діяльність почалася, тому що я бачу повідомлення "Привіт Світ" в емуляторі. Я спробував переглянути logcat з і без фільтрів, і все одно не пощастило.
Кавахон

Спробуйте командний рядок adb logcat і не фільтруйте спочатку нічого. Я впевнений, що ваш код працює і друкується до журналу.
Heikki Toivonen

Чи взагалі працює LogCat? Наприклад, чи бачите ви записи журналу з інших програм (наприклад, системних програм)?
Віт Худенко

Це може бути конкретним пристроєм. ми коли - то потрібно включити журнали з телефону приховане меню stackoverflow.com/a/43999262/2783229
Nitesh

Відповіді:


143

Використовуючи Eclipse, в перспективі DDMS переконайтесь, що вибрано та виділено правильний пристрій (широкомобільний емулятор-xxxx). Тільки тоді ви отримаєте висновок logcat у вікні logcat.

Крім того, плагін Android трохи химерний, а іноді показує лише останній рядок у поданні logcat. Якщо це трапиться, спробуйте очистити журнал. Після цього ви повинні отримати всі записи журналу знову (працює для мене все одно).


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

2
Га! Я деякий час боровся з цим. Відкрив DDMS, і у мене був вибраний старий емулятор. Чому він не за замовчуванням для поточного запущеного емулятора, це дивно.
Буде Курран

Відповідь ddewaele вирішила мою проблему, вам просто потрібно дозволити LogCat там, де його слід зосередити. Як бічна примітка, вам не потрібно змінювати перспективу, щоб відкрити меню пристроїв. Просто перейдіть у вікно >> Показати перегляд >> Інше >> Android >> Пристрої, щоб відкрити панель пристроїв
Jay

@yock Я вважаю, що це навмисно, оскільки припущення полягає в тому, що ти хочеш зупинитися і прочитати в точці, до якої ти прокрутився.
Майкл Міор

1
Ха-ха-ха, я такий дурний, що не знаю, що таке DDMS і навіть де його знайти.
Неонова вар

71

Якщо все інше не вдається:

Я робив усе вищезазначене і не міг зрозуміти, що трапилось,

Тест за допомогою:

adb logcat

щоб зрозуміти, що мої записи були незмінними в logcat, але twas adt примхи.

Виправити:

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

Це було єдине, що це виправило.


1
Це працює, але я не можу продовжувати перезапуск Eclipse, оскільки ця проблема трапляється багато для мене. Хтось має краще рішення?
Халед Аланезі

@KhaledAlanezi тоді слід розглянути можливість використання logcat з командного рядка або windows powerhell (краще).
Dheeraj Bhaskar

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

2
@programmer більше не розчаруйтесь у затемненні, перейдіть до Android Studio, мій друг :)
Dheeraj Bhaskar

1
Для мене використання емулятора на віддаленій машині перезапуск затемнення не працює. 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

Найпростіший спосіб:

Перевірте у своєму вікні логістики - КОРОБКА ВПРАВО, кут PAUSE || (Призупинення отримання нових повідомлень logcat)

Кілька клацань + врешті-решт перезапустіть затемнення (як правило, працює в моєму випадку)


3

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

До цього я отримував весь журнал і міг налагоджувати помилки, але не отримував власних ліній журналів (так, я отримував системний журнал, пов'язаний із моїм додатком).


У мене теж є таке - не отримувати власні рядки журналів. Але це не допомогло :(
Ixx

2

Існує ряд причин, через які ви не можете бачити журнали, більшість з яких перераховані нижче. Ось кілька кроків для перевірки більшості причин:

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

2

На Android Studio: Клацніть зелену стрілку, яка вправо, щоб перезапустити журнал; якщо його не видно, натисніть на значки >>, щоб знайти його.


1

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

2: додайте цей Log.i (TAG, "inLayout - готовий"); коли ви хочете вивести повідомлення

Якщо вищезазначене не працює, закрийте Eclipse та перезапустіть його та повторно запустіть проект.

Тоді воно повинно працювати.


1

Є ще одна річ, на яку слід дивитися:

У правій верхній частині логката є спадна таблиця для фільтрації повідомлень за типом. Переконайтеся, що він знаходиться на рівні, який ви шукаєте (якщо він буде на рівні ствердження, він, ймовірно, залишить ваш журнал порожнім).


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

Я витратив кілька годин на такий випадок. Я бачив лише журнали сенсорних клавіш. Більше нічого. Проблемою був ... смартфон. Після перезавантаження все було в порядку. Відключення кабелю викликало неполадки. Довелося її перезапустити ще раз. Схоже, зв’язок Android через USB недостатньо розроблений.


Дякую! Насправді, це було налаштування 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 -->
         ..../>

З тегу програми у моєму файлі Manifest.


0

Найкращим рішенням для мене був перезапуск сервера adb (у той час як я включив інтеграцію ADB в студії Android - Інструменти - Android - перевірено). Для цього я швидко створив adbr.batфайл всередині android-sdk\platform-toolsкаталогу (де він adb.exeзнаходиться) з цим всередині:

adb kill-server
adb start-server

Оскільки у мене ця папка є системною змінною PATH, завжди, коли мені потрібен перезапуск adbз Android студії, я можу писати лише в терміналadbr і це робиться.

Інший варіант зробити це через монітор пристроїв Android на вкладці "Пристрої" - Меню після натискання на маленьку стрілку праворуч - Скинути adb .


0

Для затемнення: 1) Перейдіть до точки зору ddms. 2) Переконайтесь, що вибрано правильний пристрій. 3) Якщо вже вибрані і не відображаються журнали, перезапустіть ABD. * Сподіваюся, що це вирішиться.


0

Я перезапустив службу ADB, а також "adb usb" і вирішує проблему для мене. Насправді лише одна моя діяльність більше не входила. Усі інші робили журнал. Після перезавантаження adb все знову працює як шарм. Для інших людей, які шукають інше рішення: adb kill-сервер, adb start-сервер у CLI часто вирішують вашу проблему.


0

зробіть свою програму закритою, як тільки це почне запускати LogCat знову ...

використовувати це для сили близької: D

setContentView(BIND_AUTO_CREATE);

0

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


Як перевірити, чи пристрій здатний надсилати журнали до ADB?
JCarlosR

@JCarlos спробуйте перезапустити свій пристрій, якщо жодне з вищезгаданих рішень не спрацювало
Code_Worm

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.