Logcat nie wyświetla moich wywołań dziennika


114

Jestem totalnym noobem w programowaniu na Androida i chciałem dowiedzieć się, jak debugować moje aplikacje. Nie mogę wyświetlić moich wywołań Log.i | d | v w LogCat.

Oto kod, którego używam. Jak widać, zdefiniowałem stałą LOG_TAG, ale nie mogę jej znaleźć w LogCat. Zaimportowałem również android.util.Log ORAZ upewniłem się, że w moim AndroidManifest mam „debuggable” ustawioną na TRUE.

Sprawdziłem również http://developer.android.com/reference/android/util/Log.html bez szczęścia w rozwiązaniu tego problemu.

Co ja robię źle? Czy w ogóle szukam we właściwym miejscu? Próbowałem również użyć perspektywy DDMS i debugowania bez szczęścia. Jakakolwiek pomoc dla tego nooba byłaby bardzo mile widziana. Dzięki.

Moje środowisko: Windows XP IDE = Eclipse Wersja: 3.6.1, identyfikator kompilacji: M20100909-0800 Emulator = wskazujący na android SDK 2.1 api 7

// bardzo podstawowy kod HELLO World z kilkoma wywołaniami 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");
    }
}

Nie wygląda na to, że robisz coś złego. Czy na pewno rozpoczyna się Twoja aktywność? Czy masz ustawione filtry w widoku logcat? Czy wypróbowałeś wersję logcat z wiersza poleceń? (adb logcat)
Cheryl Simon

Tak, wypróbowałem wiersz poleceń i wyprowadziłem do pliku txt, ale nadal nie mogłem go znaleźć. Wiem, że działanie zostało rozpoczęte, ponieważ w emulatorze jest wyświetlany komunikat „Hello World”. Próbowałem wyświetlić logcat z filtrami i bez, ale nadal nie miałem szczęścia.
Cavachon

Wypróbuj adb logcat z wiersza poleceń i najpierw niczego nie filtruj. Jestem prawie pewien, że twój kod działa i drukuje do dziennika.
Heikki Toivonen

Czy LogCat w ogóle działa? Np. Czy widzisz wpisy dziennika z innych aplikacji (na przykład aplikacji systemowych)?
Vit Khudenko

Może to być specyficzne dla urządzenia. czasami musimy włączyć dzienniki z ukrytego menu telefonu stackoverflow.com/a/43999262/2783229
nitesh

Odpowiedzi:


143

Korzystając z Eclipse, z perspektywy DDMS upewnij się, że wybrane i podświetlone jest właściwe urządzenie (prawdopodobnie emulator-xxxx). Dopiero wtedy zobaczysz dane wyjściowe logcat w widoku logcat.

Ponadto wtyczka systemu Android jest nieco dziwaczna i czasami pokazuje tylko ostatnią linię w widoku logcat. Jeśli tak się stanie, spróbuj wyczyścić dziennik. Następnie powinieneś ponownie pobrać wszystkie wpisy dziennika (i tak działa dla mnie).


Tak, wszystkie problemy, które miałem. Jeśli przewiniesz w widoku Logcat, nie będzie on automatycznie przewijał przyszłych aktualizacji, dopóki nie przewiniesz z powrotem do dołu.
Mike Yockey

2
Ha! Walczyłem z tym przez chwilę. Otworzyłem DDMS i wybrałem stary emulator. Dlaczego nie jest domyślnie uruchomionym emulatorem, jest dziwne.
Will Curran,

Odpowiedź ddewaele rozwiązała mój problem, wystarczy, że LogCat powinien się skupić. Na marginesie, nie musisz zmieniać perspektywy, aby wyświetlić menu urządzeń. Po prostu przejdź do okna >> Pokaż widok >> Inne >> Android >> Urządzenia, aby wyświetlić panel urządzeń
Jay

@yock Uważam, że jest to zamierzone, ponieważ założenie jest takie, że chcesz zatrzymać się i przeczytać w miejscu, do którego przewinąłeś.
Michael Mior,

1
Hahaha, jestem tak głupi, że nie wiem, co to jest DDMS i gdzie go znaleźć.
Neon Warge,

71

Jeśli wszystko inne zawiedzie:

Zrobiłem wszystkie powyższe rzeczy i nie mogłem dowiedzieć się, co jest nie tak,

Testuj za pomocą:

adb logcat

dowiedzieć się, że moje wpisy są prawdziwe w logcat, ale to były dziwactwa adt.

Naprawić:

Uruchom ponownie zaćmienie

To była jedyna rzecz, która go naprawiła.


1
To działa, ale nie mogę ponownie uruchamiać Eclipse, ponieważ ten problem często mi się przytrafia. Czy ktoś ma lepsze rozwiązanie?
Khaled Alanezi

@KhaledAlanezi powinien rozważyć użycie logcat z wiersza poleceń lub Windows PowerShell (lepiej).
Dheeraj Bhaskar

1
po prostu ponownie uruchamiam zaćmienie za każdym razem, gdy to się dzieje i zawsze rozwiązuje problem. zdarza się to zwykle raz dziennie, ale jestem już przyzwyczajony do rozczarowań po zaćmieniu ..
programista

2
@programmer, nie rozczaruj się więcej zaćmieniem, przejdź do Android Studio, przyjacielu :)
Dheeraj Bhaskar

1
Dla mnie używanie emulatora na zdalnej maszynie ponowne uruchomienie eclipse nie działa. Logcat nigdy nic nie pokazuje, ale adb logcatjest to dobra wskazówka, działa tak upvote.
soger

12

Miałem ten sam problem podczas korzystania z Android Studio i udało mi się obejść, wybierając No Filterspole wyboru w prawym górnym rogu LogCat. W ten sposób zacząłem otrzymywać wszystkie logi Androida w tle do LogCat, w tym moje brakujące wywołania dziennika.

wprowadź opis obrazu tutaj



6

Zorientowałem się, że importuję automatycznie com.sileria.Log (z jakiegoś projektu bibliotecznego) zamiast android.util.Log , gdzie ten drugi był prawidłowy. Sprawdź również import.


3

Zauważyłem, że Eclipse czasami rzuca wyjątek podczas uruchamiania aplikacji na Androida, a następnie LogCat przestaje aktualizować. Poprawiłem to, po prostu ponownie uruchamiając Eclipse. Nie jestem pewien, czy próbowałeś tego i wiem, że jest to dalekie od optymalnego rozwiązania, ale podejrzewam, że wtyczka Eclipse nadal ma kilka błędów do naprawienia.


3

Najprostszy sposób:

Sprawdź w oknie swojego logcata - przycisk PAUZA W GÓRNYM RYNKU || (Wstrzymaj otrzymywanie nowych wiadomości logcat)

Kilka kliknięć + ostatecznie ponowne uruchomienie zaćmienia (zwykle działa w moim przypadku)


3

Musiałem ponownie uruchomić usługę adb za pomocą polecenia adb usb

Wcześniej otrzymywałem całe logowanie i mogłem debugować, ale nie otrzymywałem własnych wierszy dziennika (tak, otrzymywałem rejestrowanie systemowe związane z moją aplikacją).


Mam też to - nie mam własnych linii dziennika. Ale to nie pomogło :(
Ixx

2

Istnieje wiele powodów, dla których dzienniki mogą nie być widoczne. Większość z nich została wymieniona poniżej. Oto kilka kroków, aby sprawdzić większość powodów:

  1. Upewnij się, że w pliku AndroidManifest.xml nie ma „android: debuggable =" false "”
  2. Upewnij się, że Twój logcat nie jest wstrzymany i przewiń do końca
  3. Twoje filtry powinny mieć wartość „brak filtrów” lub bieżącą aplikację
  4. Masz wybrane prawidłowe urządzenie na liście urządzeń logcat
  5. Jeśli nie otrzymujesz żadnych wiadomości, spróbuj ponownie uruchomić adb. Możesz to zrobić z Android Studio, klikając ikonę „restartu”, zaraz za ikoną drukowania dla logcat i wygląda jak zielona zakrzywiona strzałka wychodząca z pudełka. Jeśli go nie widzisz, najedź myszką na '>>', które kontynuuje menu ikon, gdy logcat jest zbyt mały.

2

W Android Studio: Kliknij zieloną strzałkę skierowaną w prawo, aby ponownie uruchomić rejestrowanie; jeśli nie jest widoczny, kliknij ikony >>, aby go zlokalizować.


1

Jestem również nowicjuszem w Android-Eclipse. Oto, czego potrzebowałem, aby wyświetlić komunikaty LogCat w Eclipse: 1: dodaj to do klasy, w której nazywa się komunikat logcat: private static final String TAG = "MyActivity"; (zgodnie z dokumentacją tutaj )

2: dodaj ten Log.i (TAG, "inLayout - zakończone"); kiedy chcesz wyświetlić wiadomość

Jeśli powyższe nie zadziała, zamknij Eclipse, uruchom go ponownie i ponownie uruchom projekt.

Powinno wtedy działać.


1

Jest jeszcze jedna rzecz, na którą należy zwrócić uwagę:

W prawym górnym rogu logcat znajduje się rozwijana tabela do filtrowania wiadomości według typu. Upewnij się, że jest na poziomie, którego szukasz (jeśli będzie na poziomie assert, prawdopodobnie pozostawi twój logcat pusty).


1

Przejdź do Menedżera zadań i zakończ proces adb.exe. Ponownie uruchom zaćmienie.

lub

spróbuj adb kill-server, a następnie polecenie adb start-server .


1

Prawdopodobnie nie jest to poprawne i trochę dłużej, ale rozwiązałem ten problem (Android Studio), używając tego:

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

Lubię to:

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

1

Spędziłem na takiej sprawie kilka godzin. Widziałem tylko dzienniki klawiszy dotykowych. Nic więcej. Problem był ... smarthphone. Po ponownym uruchomieniu było OK. Odłączenie kabla spowodowało powrót problemu. Musiałem go ponownie uruchomić. Wygląda na to, że komunikacja USB w Androidzie nie jest dobrze zaprojektowana.


Dziękuję Ci! Właściwie to było ustawienie USB w szybkim menu telefonu ... w odniesieniu do debugowania USB. Nabrałem zwyczaju przechodzenia z opcji Tylko ładowanie na Transfer plików. ALE, tylko ładowanie jest tym, co sprawiło, że logowanie działało. Właśnie wracam do programowania na Androida po kilku latach nieobecności i to naprawdę utrudniało mi naukę.
wwfloyd,

Potem otrzymywałem tylko część danych logowania ... wszystko, co ostatnio dodane, zostało zignorowane. Zostało to posortowane za pomocą Clean and Rerun w Android Studio.
wwfloyd,

1

SZYBKA NAPRAWA.

Po prostu uruchom ponownie zaćmienie

Działa doskonale.


0

Używając SDK 4.0.3 musisz jawnie wybrać go w konfiguracjach debugowania> projekt> cel, w przeciwnym razie nigdy nie pokaże się przy użyciu Eclipse Indigo (3.7). Oczywiście następuje ponowne uruchomienie zaćmienia.


0

Miałem również problem z wyświetlaniem prostych wyników dziennika w programie logcat. Mój problem został rozwiązany po zainstalowaniu najnowszego JDK. Właśnie skonfigurowałem nową maszynę programistyczną i miałem tylko zainstalowane środowisko JRE i instalacja JDK działała dla mnie.


0

Żadna z pozostałych odpowiedzi nie zadziałała dla mnie, ale to zadziałało:

Usunąłem projekt z mojego obszaru roboczego, a następnie usunąłem wszystko, co zaczynało się od kropki (.settings, .project itp.) Z folderu projektu. Następnie ponownie zaimportowałem projektowany. Brakuje mi niektórych ustawień i punktów przerwania, ale przynajmniej działa.


0

Miałem ten problem i wydawało się, że nic nie działa, dopóki nie przeniosłem wywołania dziennika do modułu obsługi. Teraz działa za każdym razem, bez względu na to, gdzie jesteś.


0

Popełniłem błąd, wpisując wyszukiwane hasło w polu wyszukiwania logcat. Zapomniałem go usunąć i dlatego nie mogłem zobaczyć nowych dzienników. Ponieważ nie pasują do mojego wyszukiwanego hasła i nie zostały wyświetlone.


0

W moim przypadku musiałem usunąć tę linię:

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

Z tagu aplikacji w moim pliku manifestu.


0

Najlepszym rozwiązaniem dla mnie był restart serwera adb (podczas gdy mam włączoną integrację ADB w Android studio - Narzędzia - Android - zaznaczone). Aby to zrobić szybko, utworzyłem adbr.batplik w android-sdk\platform-toolskatalogu (gdzie się adb.exeznajduje) z tym wewnątrz:

adb kill-server
adb start-server

Ponieważ mam ten folder w zmiennej systemowej PATH, zawsze gdy potrzebuję restartu adbze studia Android, mogę pisać tylko do terminalaadbr i gotowe.

Inną opcją jest skorzystanie z Monitora urządzeń Android na karcie Urządzenia - Menu po kliknięciu małej strzałki w prawo - Zresetuj adb .


0

W przypadku zaćmienia: 1) Przejdź do perspektywy ddms. 2) Upewnij się, że wybrano prawidłowe urządzenie. 3) Jeśli jest już wybrany i nie wyświetla dzienników, uruchom ponownie ABD. * Mam nadzieję, że to rozwiąże.


0

Zrestartowałem również usługę ADB z "adb usb" i rozwiązałem problem. W rzeczywistości tylko jedna z moich czynności nie była już rejestrowana. Wszyscy inni rejestrowali rzeczy. Po restarcie adb wszystko znów działa jak urok. Dla innych osób, które szukają innego rozwiązania: adb kill-server, adb start-server w CLI często również naprawią twój problem.


0

wymuś zamknięcie swojej aplikacji po ponownym uruchomieniu LogCat ...

użyj tego do wymuszenia zamknięcia: D

setContentView(BIND_AUTO_CREATE);

0

czasami problem nie pochodzi z komputera, z drugiej strony IDE, ADB itp., ale wynika z twojego urządzenia, które nie wysyła dzienników do ADB, więc jeśli wypróbowałeś wszystkie wymienione wcześniej sposoby i nadal twój logcat jest pusty, spróbuj ponownie uruchomić urządzenie i spróbuj ponownie. Wypróbowałem wszystkie wymienione powyżej sposoby i żaden z nich nie działał, ale po ponownym uruchomieniu na moim telefonie logcat działał jak magia


Jak sprawdzić, czy urządzenie może przesyłać logi do ADB?
JCarlosR

@JCarlos spróbuj ponownie uruchomić urządzenie, jeśli żadne z powyższych rozwiązań nie zadziałało
Code_Worm,

AndroidMonitor wyświetla komunikaty, gdy używam Logi uruchamiam aplikację na moim smartfonie, ale nie działa ona na moim smartwatchu. Szukałem ustawień, ale wszystko wydaje się dobre.
JCarlosR

0

Mam ten problem i naprawiłem String TAG bez spacji:

„mój tag” // zauważając, że pokaz
„mój_tag” // jest w porządku


0

W moim przypadku wystarczyło dodać nazwę do String. Na początku miałem po prostu spację między nawiasami

private static final String TAG = " ";

ale po dodaniu nazwy działało idealnie.

private static final String TAG = "oncreate";

0

Po uaktualnieniu do systemu Android 3.6.1 napotkałem ten problem wiele razy. Jedyne, co działa w moim przypadku, to PONOWNE URUCHOMIENIE URZĄDZENIA.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.