Skocz do zawartości
Zenderable

Jak zrobić Logcat?

    Rekomendowane odpowiedzi

    Czego możemy się dowiedzieć z logcata? Wstęp.

    Chciałbym wam przedstawić poradnik, w którym dowiecie się jak zrobić logcat. Wykonując logcat możemy stwierdzić co powoduje błąd aplikacji. Czasami po instalacji ROM'u występuje FC (Force Close) jakiejś aplikacji i właśnie najlepszym sposobem na naprawienie błędy jest właśnie zrobienie tego. Jest kilka możliwości zrobienia Logcat'a (na przykład aplikacją w telefonie), ale ja wolę opisać sposób przez komputer, ponieważ moim zdaniem jest on najłatwiejszy i najszybszy.

    Wymagania

    - Android SDK

    - USB

    - Włączone Debugowanie USB

    Instalacja Android SDK

    Pierwsze co trzeba zrobić, to zainstalować Android SDK (zwane inaczej ADT - Android Developer Tools). Dobra jedziemy.

    1) Pobierz Android SDK: https://developer.android.com/sdk/index.html, najlepiej zjechać na sam dół, kliknąć "DOWNLOAD FOR OTHER PLATFORMS'' i pobrać "SDK Tools only" - będzie miało to mniejszą pojemność.

    2) Gdy pobierzesz, musisz zainstalować SDK, w tym celu klikasz na pobraną paczkę i wypakowujesz w wybrane miejsce przez Ciebie.

    3) Po wypakowaniu wejdź:

    "Nazwa pobranego pliku" -> SDK Manager.exe

    4)Zaznaczamy "Android SDK Tools" oraz "Android SDK Platform-tools"

    6ih3wk.png

    5)Klikamy "Install packages"

    6) Akceptujemy wszystko i instalujemy

    7) Gotowe! Możemy wyłączyć program.

    Logcat

    1) Podpinamy telefon pod USB, musi być włączone Debugowanie USB

    2) Przechodzimy w telefonie do miejsca gdzie chcemy wywołać FC, na razie tego nie wywołujemy.

    3) Przechodzimy do: "miejsca instalacji SDK" -> sdk -> platform tools

    4) Przytrzymujemy "Shift" i klikamy prawym przyciskiem myszy na tło folderu:

    9ztx8i.png

    5) Klikamy "Otwórz okno polecenia tutaj"

    6) Wpisujemy:

    adb devices

    Dzięki temu dowiemy się czy konsola zwraca nam identyfikator urządzenia, jeśli tak to możemy przystąpić do dalszej części.

    7) Wpisujemy w tym samym miejscu:

    adb logcat > log.txt

    Logcat będzie od razu zapisywany do pliku tekstowego więc nie będzie widoczny rezultat jego działania w konsoli.

    8) Czekamy chwilę - program musi przejść przez logi wstępne.

    9) Wywołujemy na telefonie FC - po prostu wchodzimy tam, gdzie robi się Force Close.

    10) Pojawi się komunikat, nie klikamy OK jeszcze.

    11) Kończymy działanie konsoli klikając kombinację "ctrl + c". Dopóki nie klikniemy OK, fragment FC będzie znajdował się na końcu pliku log.txt, więc łatwo znajdziemy część która nas interesuje.

    12) Otwieramy plik log.txt - tylko nie Notatnikiem, najlepiej Notepad++

    13) Przewijamy na koniec pliku i szukamy interesującej nas części.

    Sprawdzanie co spowodowało bootloop

    Czasami nasz ROM, który instalujemy potrafi złapać boot loopa, czyli wejść w pętle - ciągle napis na przykład "Sony" i bootanimacja - i tak w kółko. Możemy się dowiedzieć co powoduje bootloop. Używamy do tego logcata.

    1) Wchodzimy do CWM

    2) Instalujemy coś co powoduje bootloop

    3) Restartujemy telefon

    4) Włączamy logcat (najlepiej bez opcji zapisu do pliku)

    5) Obserwujemy logcat aż wpisy zaczną się powtarzać – to jest właśnie boot loop

    6) Zatrzymujemy logcat, zaznaczamy treść błędu w konsoli i kopiujemy do pliku tekstowego.

    7) Żeby wyjść z bootloopa możemy po prostu wyjąć baterię lub wpisać w konsoli:

    adb reboot recovery

    Wymusi to wejście telefonu w Recovery

    Jeśli pomogłem kliknij "Postaw Piwo" pod tym poradnikiem, nagrodzisz moją pracę, a to nic nie kosztuje! Musisz być zalogowany tylko ;)

    Edytowane przez Zenderable

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    CheQ

    świetne! :) Moje pytanie (takie drobne) - po instalacji Roma nie zawsze debugowanie usb jest włączone więc Logcat chyba nie będzie działał (spotkałem się z taką sytuacją) - co w takim wypadku zrobić?

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Zależy jaki masz FC. Jeśli taki, że po kliknięciu OK pokazuje się jeszcze raz i tak w kółko to nic nie zrobisz, jeśli dziwnym trafem debugowanie USB jest wyłączone, jedyna szansa to klikanie szybko w ekran, żeby się dostać do ustawień i włączyć to, choć może być to trudne, bo FC ciągle wyskakuje. Jeśli klikniesz OK i powiadomienie zniknie to po prostu wchodzisz w ustawienia i włączasz Debugowanie USB, gorzej jak jest FC ustawień.

    Choć jeszcze się nie spotkałem z tym, żeby w nieoficjalnym oprogramowaniu było wyłączone Debugowanie USB - jest to domyślnie włączone, żeby developer mógł łatwo znaleźć przyczynę błędu ;)

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    CheQ

    Sytuacja była taka że telefon nie bootował się w pełni (bootloop na logu) po portowaniu telefonu. Nie miałem jak sprawdzić z wyżej wymienionego błedu. Szukałem czy mogę w jakiś sposób włączyć Debugowanie przez Recovery. Darowałem sobie nawet nie pamiętam dlaczego, może kiedyś rozwiążę tą tajemnicę bo pomysł mam :)

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    szymel00

    Pomóc może chyba dodanie w build.prop linijki:

    persist.sys.usb.config=mtp,adb

    itp.

    persist.sys.usb.config=mass_storage,adb

    ;)

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    mst

    Jak wykluczyć wiersze typu "D/BootAnimation" z logcata podczas bootowania?

    np.

    D/BootAnimation(  450): [bootAnimation movie 891]1,delay=39
    

    Szukam czegoś w stylu:

    adb logcat | !grep "D/BootAnimation"

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    Raciborski

    Panowie

    Mam taki problem. Wszystko działa mi do pkt. 9 dla LOGCAT.

    Chodzi o to, że potrzebuje przesłać tego właśnie loga z racji tego, że podczas przytrzymania przycisku HOME, aby wywołać okno RECENT APPS, wywala mi FC.

    Tyle, że nic się nie dzieje potem. A w pliku log.txt mam tylko takie coś

    Unable to open log device '/dev/log/main': No such file or directory

    Jakieś pomysły ;)

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    @Raciborski

    Masz włączone debugowanie USB? Po wpisaniu:

    adb devices

    Akceptujesz monit w telefonie? Czy włączasz logcata przed wywołaniem FC?

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    Raciborski
    Masz włączone debugowanie USB? Po wpisaniu:

    Oczywiście, że mam ;)

    Akceptujesz monit w telefonie? Czy włączasz logcata przed wywołaniem FC?

    Hmm. Żadnego takiego komunikatu nie mam.

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    @Raciborski

    I to pewnie jest przyczyna dlaczego nie robi ci logcata. Powinien pojawić się komunikat, żeby sparować ze sobą komputer i telefon kluczami SSH (jakoś tak, jutro dokładnie zobaczę jak to wygląda).

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

    Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

    Zarejestruj nowe konto

    Załóż nowe konto. To bardzo proste!

    Zarejestruj się

    Zaloguj się

    Posiadasz już konto? Zaloguj się poniżej.

    Zaloguj się

    • Przeglądający   0 użytkowników

      Brak zarejestrowanych użytkowników przeglądających tę stronę.