Poradnik: Jak zrobić logcat?

Poradnik: Jak zrobić logcat?
Czym jest logcat i czemu służy?

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.

Wymagania
  • zainstalowane na komputerze Android SDK
  • telefon podpięty pod USB
  • włączone Debugowanie USB dostępne w MIUI 2.3 pod:
    Ustawienia > Aplikacje > Opcje programistyczne a w MIUI v4 pod:
    Ustawienia > Opcje programistyczne
Instalacja Android SDK
  • 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.
Logcat

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 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 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 Uruchom > cmd lub Terminal w Linux
  4. Przechodzimy do katalogu android-sdk/tools
  5. Wpisujemy:

    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 Tethering i Hotspot
  9. Pojawia nam się komunikat o zamknięciu aplikacji Ustawienia. NIE klikamy jeszcze OK.

  10. W konsoli kończymy działanie Logcata wciskając kombinację klawiszy:
    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:
    E/AndroidRuntime( 6632): FATAL EXCEPTION: main
    a kończy się na wpisach:
    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 ;)

Czego możemy się dowiedzieć z logcata?

Wykonując logcat możemy stwierdzić co powoduje błąd aplikacji. W opisanym przykładzie jest to brak zasobów:
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.

Rejestr bootloopa

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:

    adb reboot recovery

    wymusi na telefonie powrót do recovery

Inne możliwości

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.

Naczelny tłumacz MIUI na język polski. To od niego wszystko się zaczęło. Współtwórca MIUIPolska.pl i Xiaomi.eu. Prowadzi serwis Xiaomi MiCenter.
[AuthorRecommendedPosts]
  • Pingback: Goozle Zones()

  • Pingback: replica watches()

  • Pingback: cash advance()

  • Pingback: SME()

  • Pingback: yeast infection on skin()

  • Pingback: cystitis()

  • Pingback: flooring bromley()

  • Pingback: cheap loans uk()

  • Pingback: promotional lip balm()

  • Pingback: zig zaga()

  • Pingback: attorney()

  • Pingback: ZigZag()

  • Pingback: calaguas tour()

  • Pingback: new york asian escorts()

  • Pingback: Secured homeowner loans()

  • Pingback: perder peso()

  • Pingback: jfd98ayhcim()

  • Pingback: Birgit Lagroon()

  • Pingback: y3 yim.in.th()

  • Pingback: letmewatchthis()

  • Pingback: Visit here()

  • Pingback: Sprachaufenthalt Frankreich()

  • Pingback: fsgb80v7cbwe()

  • Pingback: lida()

  • Pingback: lida()

  • Pingback: holly king()

  • Piotr

    Czy rozumiem że raporty błędów logcat trzeba wysyłać na kontakt?? Tam jest informacja o tym że nie można wysyłać załączników *.txt

    • Wrzuć na pastebin.com i prześlij link. Tak jest najwygodniej.

  • x6itru

    probuje zrobic wlasnie port miui na moje urzadzenie (patchrom) ale wisi mi na bootloopie ;p, gdy telefon jest na bootloopie adb mi telefonu nie widzi i ni ma jak logcata odpalic :/

  • jordan87

    Próbuje zapisać logcat na Kitkacie ale nawet mimo bardz krótkiego czasu i braku dotykania czegokolwiek log wychodzi bardzo długi. Po zmianie domyślnej klawiatury za każdym razem wali mi FC

  • Siorbek

    po wpisaniu adb logcat > log.txt wyskakuje mi „waiting for device” gdzie popelnilem błąd?

    • Nigdzie nie popełniłeś błędu poza tym, że po prostu komputer nie widzi w ogóle urzadzenia.

      Wpisz:
      adb devices

      jeśli są znaki zapytania to widzi ale nie może nadać uprawnień. Jeśli w ogóle nie widzi i jest no devices to gdzieś masz coś nie tak.

  • e2rdo

    o matko…

    • AceIT

      ??

      • braknazwy

        ale żeś odkopał

        • jomal

          haha :D