2013-02-06 14 views
31

Niedawno uruchomiłem aplikację w Sklepie Google Play, a ja odkryłem konsolę programisty i zobaczyłem kartę Crashes and ANR.Awarie i ANR na konsoli programisty Androida

Co oznacza skrót ANR?

Co więcej, moja aplikacja prawdopodobnie uległa awarii na niektórych telefonach mojego znajomego, ale nie było sposobu, aby "zgłosiły" takie awarie. Jak mam włączyć takie funkcje, aby użytkownicy zgłaszali awarie, aby zobaczyć je w konsoli programisty na karcie Crashes/ANR?

+3

Aplikacja nie odpowiada, czy chcesz "Wait", "Zamknij aplikację" – Shark

+1

ANR => Aplikacja nie odpowiada. Jeśli aplikacja wykonuje wiele pracy w wątku UI, zobaczysz te błędy. – Gogu

Odpowiedz

42

ANR oznacza Aplikacja nie odpowiada. Jeśli Twoja aplikacja wykonuje wiele pracy nad wątkiem interfejsu użytkownika, zobaczysz jedno z tych okien dialogowych zamykania/oczekiwania. To ANR.

Jeśli chodzi o zgłaszanie awarii, jeśli aplikacja jest dystrybuowana za pośrednictwem Google Play, to raportowanie awarii jest wbudowane. Gdy aplikacja się zawiesza, użytkownik uzyskuje okno dialogowe z opcjami "Wymuś zamknięcie" lub "Zgłoś". Użytkownik musi nacisnąć opcję Raport, aby wysłać raport awarii, w przeciwnym razie może nigdy nie wiadomo.

Jeśli nie dystrybuujesz za pośrednictwem Google Play, możesz rozważyć skorzystanie z biblioteki takiej jak ACRA, która będzie wysyłać Ci raporty o awariach, przesyłać je do arkusza kalkulacyjnego Dokumentów Google lub możesz napisać własną niestandardową procedurę obsługi w celu rozwiązania problemu z awarią raporty.

Szczegóły dotyczące Acra można znaleźć tutaj: http://code.google.com/p/acra/

Poniżej jest próbkowanie co te dialogi wyglądają. Zamknij/wyświetl okna dialogowe po lewej i ANR po prawej. Android 3.0+ jest na wierzchu ze starszymi oknami dialogowymi na dole.

enter image description here

+1

Hmm to dziwne, ponieważ wydaje się, że pojawia się na telefonie mojego przyjaciela, że ​​po prostu mówi " zatrzymał się" i może tylko kliknąć Ok. – lyk

+0

Przez jakiś czas nie miałem awarii aplikacji, więc nie mogę powiedzieć na pewno, jak teraz wygląda, ale funkcja została wprowadzona w systemie Android 2.2 i wyglądała tak: http://android-developers.blogspot.com /2010/05/google-feedback-for-android.html – MCeley

+0

Tak, widziałem to również w innych aplikacjach! Właśnie dlatego zastanawiałem się, czy trzeba coś specjalnego zrobić, aby to aktywować, ponieważ moja aplikacja nie ma go po awarii ... – lyk

4

Po awarii aplikacji generowany jest nagrobek. Zasadniczo Twoja aplikacja musi być świadoma, że ​​jej część uległa awarii (jeśli korzystasz z jakiegoś interfejsu API lub biblioteki, która zapewnia oddzwanianie/stan), ale jeśli tak naprawdę to tylko twoja aplikacja umiera - będziesz miał trochę trudności z ustaleniem, czy się zdarzyło nie.

"Zgłaszanie błędów" nie jest klasą predefiniowaną, z której możesz korzystać w Androidzie, a być może będziesz musiał rzucić jedną z nich. Potem znowu, nie ACRA - http://acra.ch/

kilka linków:

http://android-developers.blogspot.com/2010/05/google-feedback-for-android.html

http://developer.android.com/distribute/googleplay/strategies/app-quality.html

Powiązane problemy