Es scheint, dass Ihr Browser von unserer Anwendung nicht unterstützt wird.

Häufige Schuldige

Im Allgemeinen werden ANRs ausgelöst, weil Ihre Anwendung Folgendes tut:

  1. Die Durchführung langsamer Operationen mit E/A im Hauptthread.
  2. Durchführen langer Berechnungen auf dem Haupt-Thread.
  3. Durchführen eines synchronen Binder-Aufrufs im Haupt-Thread und der andere Prozess braucht Zeit, um zu antworten.
  4. Warten im Haupt-Thread auf einen anderen Thread, der eine lange Operation durchführt.
  5. Hängenbleiben in einer Deadlock-Situation. Deadlocks können im Hauptthread auftreten, wenn er auf Ressourcen wartet, die ein anderer Prozess nicht freigegeben hat, so dass er die benötigten Ressourcen nicht erhalten kann. Diese anderen Prozesse können sich in einem anderen Thread, Ihrem Prozess oder in einem Binder-Aufruf befinden.

Diagnosetechniken

Verwenden Sie den strengen Modus

Mit StrictModekönnen Sie versehentliche E/A-Operationen finden.

Lesen Sie mehr über StrictMode in der offiziellen Dokumentation.

Aktivieren Sie ANR-Dialoge im Hintergrund in den Entwickleroptionen

Nicht alle ANRs sind für den Benutzer sichtbar; daher kann die Anwendung mit Leistungsproblemen konfrontiert sein, ohne dass der Benutzer dies bemerkt. Aktivieren Sie ANR-Dialoge im Hintergrund in den Entwickleroptionen.

Überprüfen Sie Trace-Dateien mit adb

Trace-Dateien werden bei einem ANR-Ereignis erzeugt. Sie können diese Dateien mit der Android Debug Bridge (adb) als Root abrufen, indem Sie die folgenden Befehle verwenden:

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

Schreibe einen Kommentar