glaedrem Opublikowano 22 Września 2013 Udostępnij Opublikowano 22 Września 2013 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[bt]Instalacja Android SDK[/bt] instalacja SDK dla Windows i Linux jest jasno opisana na wiki i wystarczy wykonać poradnik krok po kroku. jeśli po wykonaniu powyższego poradnika polecenie: adb devices wprowadzone w konsoli zwraca nam identyfikator urządzenia to możemy przystąpić do dalszej części.[bt]Logcat[/bt] 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. Podpinamy telefon do USB 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. Uruchamiamy konsolę CMD Uruchom > cmd lub Terminal w Linux Przechodzimy do katalogu android-sdk/tools Wpisujemy: 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.) Czekamy chwilkę na przejście programu przez logi wstępne. Na telefonie wywołujemy FC. W przykładzie klikamy na Tethering i Hotspot Pojawia nam się komunikat o zamknięciu aplikacji Ustawienia. NIE klikamy jeszcze OK. 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. 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++ 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: Wchodzimy do recovery Instalujemy coś co powoduje bootloop Restartujemy telefon Włączamy logcat (najlepiej bez opcji zapisu do pliku) Obserwujemy logcat aż wpisy zaczną się powtarzać - to jest bootloop Zatrzymujemy logcat, zaznaczamy treść błędu w konsoli i kopiujemy do pliku tekstowego. Jako ciekawostkę podam, że by wyjść z bootloopa nie trzeba wyjmować baterii. W większości przypadków wpisanie poniższej komendy: adb reboot recoverywymusi na telefonie powrót do recoveryInne 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. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi