Wygląda na to, że Twoja przeglądarka nie jest obsługiwana przez naszą aplikację.

Częste przyczyny

Zwykle ANR są wywoływane, ponieważ Twoja aplikacja wykonuje następujące czynności:

  1. Wykonywanie powolnych operacji we/wy w głównym wątku.
  2. Wykonywanie długich obliczeń na głównym wątku.
  3. Wykonywanie synchronicznego wywołania bindera w głównym wątku, a inny proces potrzebuje czasu na odpowiedź.
  4. Oczekiwanie w głównym wątku na inny wątek, który wykonuje długą operację.
  5. Utknięcie w sytuacji impasu. Martwe punkty mogą wystąpić w głównym wątku, gdy czeka on na zasoby, których inny proces nie zwolnił, więc nie może zdobyć potrzebnych mu zasobów. Te inne procesy mogą znajdować się w innym wątku, twoim procesie lub w wywołaniu bindera.

Techniki diagnozowania

Użyj trybu ścisłego

Z pomocą StrictMode możesz znaleźć przypadkowe operacje wejścia/wyjścia.

Czytaj więcej o StrictMode w oficjalnej dokumentacji.

Włącz okna dialogowe ANR w tle w opcjach programisty

Nie wszystkie ANR są widoczne dla użytkownika; dlatego aplikacja może mieć problemy z wydajnością bez świadomości użytkownika. Włącz okna dialogowe ANR w tle w opcjach dewelopera.

Przeglądaj pliki śladów za pomocą adb

Pliki śladów są generowane w zdarzeniu ANR. Możesz wyciągnąć te pliki używając Android Debug Bridge (adb) jako root używając następujących komend:

adb rootadb shell ls /data/anradb pull /data/anr/<filename>

.

Dodaj komentarz