2011-12-30 26 views
8

Mój program ulega awarii, ale kod logcat nie wyświetla żadnych wyjątków. Właśnie dostaję następujący komunikat, a także wiele statystyk dotyczących użycia procesora. Najwyraźniej używam zbyt dużej części procesora, ale nie wiem, jaka część mojego programu to robi. Gdzie jest następujący plik? Nie mogę tego znaleźć.Jak znaleźć ten ślad stosu?

12-30 23: 13: 06,639: info/dalvikvm (7688) Wrote stos śladowych do '/data/anr/traces.txt'

+0

'cat/data/ANR/traces.txt' ... powinien działać z systemem Linux ostatecznie z Androidem też. .. – evotopid

Odpowiedz

10
adb shell 

->

cat /data/anr/traces.txt 

EDIT:

trzeba mieć dostęp do roota do modyfikowania plików w/data/powinieneś być w stanie ccess plik z aplikacji jak https://market.android.com/details?id=com.estrongs.android.pop

Gdy masz tę aplikację, otwórz ją -> Menu -> Ustawienia -> Home Directory (Zmiana od /sdcard/ do /) -> Wyjście z aplikacji -> Otwórz to znowu

Następnie powinieneś być w stanie przejść do/data/ANR/*

Edit2 (Dodatkowa informacja, na podstawie uwag) do wykorzystania z opublikowanego aplikacji po ręce na badania:

  • Większość programistów polega na developer console error reporting, aby wyświetlić dziennik stosu i dzienniki błędów, gdy użytkownik przesyła raport o błędzie.

  • Inne impliment własną rękę lub skorzystać z biblioteki jak ACRA

Uważajcie niektórzy użytkownicy nie zainstalować aplikację tylko dlatego, że korzysta z uprawnienia do odczytu wrażliwych danych dziennika.

+0

Używam Eclipse w WIndows. Mogę zaglądać do plików na moim urządzeniu/emulatorze, ale plik traces.txt nie jest nigdzie. –

+0

Zaktualizowałem moją odpowiedź. Możesz użyć aplikacji, aby uzyskać dostęp do tego pliku. – TryTryAgain

+0

Jak uzyskać dostęp do tego pliku bez dostępu do konta root (na przykład z telefonów HTC)? – Amplify91

2

ANR oznacza „Android nie odpowiada”, a to nie znaczy, że używasz zbyt dużo procesora, to znaczy, że głównym looper UI nie został wezwany na dany okres czasu. Looper UI zajmuje się wprowadzaniem danych przez użytkownika, więc z punktu widzenia użytkownika aplikacja nie reaguje na dane wejściowe. Zwykle jest to spowodowane wykonywaniem długich lub blokujących operacji w głównym wątku UI. Na przykład pobranie pliku z głównego wątku może spowodować ANR. Zwykle dość łatwo jest znaleźć kod, który powoduje ANR właśnie z tych informacji.

5

zapewnia wygodne oglądanie bez użycia skróconych głowę pliku następujące polecenia jednego wiersza:

adb shell "cat /data/anr/traces.txt" | less

Powiązane problemy