Poradnik: Jak zrobić logcat?

Acid
12 komentarzy

[title-4]Czym jest logcat i czemu służy?[/title-4]

Logcat w Androidzie to aktywny podgląd wszystkiego co dzieje się “pod maską” telefonu. Wyświetlane są wszelkie działania i operacje na aplikacjach, a także czynności wykonywane przez system. Analiza tych danych jest często niezbędna do zdiagnozowania problemu np. niespodziewanego zamknięcia aplikacji – zwanym dalej FC (Force Close).


Logcat wygląda mniej więcej tak:

Jeśli po instalacji MIUI na naszym telefonie występuje jakieś nieprawidłowe zachowanie aplikacji np. FC a problem ten nie może zostać przeze mnie odtworzony to konieczne jest przesłanie na adres mailowy (kontakt na dole strony) logcata z tego zdarzenia.

Przedstawiony tutaj sposób na rejestrację logcata jest jednym z kilku możliwych do przeprowadzenia. Opiszę tutaj metodę (dla mnie przynajmniej) najwygodniejszą i najszybszą.

Poradnik pisany jest na Ubuntu linux ale komendy i sama procedura jest taka sama dla Windows.

[title-1]Wymagania[/title-1]

  • zainstalowane na komputerze Android SDK
  • telefon podpięty pod USB
  • włączone Debugowanie USB dostępne w MIUI 2.3 pod:
    1
    Ustawienia > Aplikacje > Opcje programistyczne

    a w MIUI v4 pod:

    1
    Ustawienia > Opcje programistyczne

[title-1]Instalacja Android SDK[/title-1]

  • instalacja SDK dla Windows i Linux jest jasno opisana tutaj i wystarczy wykonać poradnik krok po kroku.
  • jeśli po wykonaniu powyższego poradnika polecenie:
    [code]adb devices[/code] wprowadzone w konsoli zwraca nam identyfikator urządzenia to możemy przystąpić do dalszej części.

[title-1]Logcat[/title-1]

Często na stronie miuipolska.pl lub na forum wspominam iż by pomóc w rozwiązaniu problemu potrzebne jest przesłanie mi logcata z FC, którego mamy po uruchomieniu jakiejś aplikacji.

W tym celu dokonamy zapisu błędu z FC

1
Tethering i Hotspot

w MIUI v4.
Log zostanie zapisany do pliku tekstowego log.txt.

  1. Podpinamy telefon do USB
  2. Przechodzimy do miejsca w telefonie gdzie chcemy wywołać FC ale jeszcze tego nie robimy. W tym przykładzie przechodzimy do
    1
    Ustawienia > Więcej...

    . Lepiej jest to zrobić teraz, ponieważ logcat będzie rejestrował nawet nasze kroki po menu, a to nie jest nam potrzebne.

  3. Uruchamiamy konsolę CMD
    1
    Uruchom > cmd

    lub Terminal w Linux

  4. Przechodzimy do katalogu
    1
    android-sdk/tools
  5. Wpisujemy:
    1
    adb logcat > log.txt
  6. logcat będzie od razu zapisywany do pliku tekstowego więc nie będzie widoczny rezultat jego działania w konsoli.

  7. Czekamy chwilkę na przejście programu przez logi wstępne.
  8. Na telefonie wywołujemy FC. W przykładzie klikamy na
    1
    Tethering i Hotspot
  9. Pojawia nam się komunikat o zamknięciu aplikacji
    1
    Ustawienia

    . NIE klikamy jeszcze OK.

  10. W konsoli kończymy działanie Logcata wciskając kombinację klawiszy:
    1
    ctrl + c

    . Dopóki nie klikniemy na OK w telefonie fragment logcata z tego FC będzie na końcu pliku log.txt więc łatwo dokonamy wycięcia tylko tej części, która nas interesuje.

  11. Otwieramy plik log.txt za pomocą edytora plików tekstowych. Tylko nie Notatnik!
    Ta zabawka potrafi zapisać loga bez zawijania wierszy, a także nie radzi sobie z dużymi plikami. Radzę użyć normalnego edytora np. Notepad++
  12. Przewijamy na koniec pliku log.txt:

    Błąd (ERROR) powodujący zakończenie działania aplikacji zaczyna się od:

    1
    E/AndroidRuntime( 6632): FATAL EXCEPTION: main

    a kończy się na wpisach:

    1
    W/ActivityManager(  176):   Force finishing activity com.android.settings/.SubSettings

    Taki też fragment kopiujemy i wysyłamy mailem do mnie. Warto jest też zapisać to w osobnym pliku .txt by łatwiej się czytało loga ;)

[title-1]Czego możemy się dowiedzieć z logcata?[/title-1]

Wykonując logcat możemy stwierdzić co powoduje błąd aplikacji. W opisanym przykładzie jest to brak zasobów:

1
2
E/AndroidRuntime( 6632): Caused by:
android.content.res.Resources$NotFoundException: Resource ID #0x3060005

będących pod podanym ID. Prawdopodobnie string jest zdefiniowany w public.xml ale nieużyty w strings.xml.

[title-1]Rejestr bootloopa[/title-1]

Logcat jest także bardzo przydatny jeśli pomimo wgrania pliku w recovery, telefon się nie uruchamia i stoi na animacji bootowania lub ekranie startowym. Wtedy także możemy ten błąd zarejestrować.

Kolejność jest wtedy następująca:

  1. Wchodzimy do recovery
  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 bootloop
  6. Zatrzymujemy logcat, zaznaczamy treść błędu w konsoli i kopiujemy do pliku tekstowego.
  7. Jako ciekawostkę podam, że by wyjść z bootloopa nie trzeba wyjmować baterii.
    W większości przypadków wpisanie poniższej komendy:
    1
    adb reboot recovery

    wymusi na telefonie powrót do recovery

[title-1]Inne możliwości[/title-1]

W markecie dostępnych jest także wiele aplikacji, które część działań wykonują za nas a logcat jest robiony bezpośrednio przez aplikację w telefonie. Niektóre mają także możliwość wysłania błędu emailem pod podany adres. Można więc się zapoznać z ich działaniem jeśli ten sposób jest zbyt skomplikowany.

Dla mnie ta metoda jest najszybsza i prosta także polecam wszystkim.

Mam nadzieję, że ten temat wyczerpał wszelkie wątpliwości o tym jak zrobić logcat.

Kup flagowca Xiaomi

z zainstalowanym naszym softem!

Przeczytaj najpopularniejsze:

Subskrybuj
Powiadom o
guest

12 komentarzy
Najnowsze
Najstarsze Naj. głosów
Inline Feedbacks
Pokaż wszystkie

Copyright @2022 – Wszelkie prawa zastrzeżone. Hosting: Hetzner