Zapisuj i czytaj raporty o błędach

Raport o błędzie zawiera logi urządzenia, zrzuty stosu i inne dane diagnostyczne informacje, które pomagają znaleźć i naprawić błędy w aplikacji. Aby zarejestrować robaka raportu z urządzenia, skorzystaj z narzędzia do zgłaszania błędów w menu emulatora Androida, lub polecenie adb bugreport na komputerze, na którym pracujesz.

Rysunek 1. Opcje programisty na urządzeniu.

Aby zgłosić błąd, musisz mieć: Opcje programisty włączone na na urządzeniu, aby uzyskać dostęp do opcji Zgłoś błąd.

Zapisz raport o błędzie na urządzeniu

Rysunek 2. Raport o błędzie jest gotowy.

Aby otrzymać raport o błędzie bezpośrednio z urządzenia:

  1. Włącz programistę Opcje.
  2. W sekcji Opcje programisty kliknij Zgłoś błąd.
  3. Wybierz typ raportu o błędzie i kliknij Zgłoś.

    Po chwili otrzymasz powiadomienie, że raport o błędzie jest gotowy, co pokazano na rys. 2.

  4. Aby udostępnić raport o błędzie, kliknij powiadomienie.

Utwórz raport o błędzie za pomocą emulatora Androida

W Emulatorze Androida możesz użyć opcji Zgłoś błąd. w rozszerzonych elementach sterujących:

  1. Kliknij Więcej w Panel emulatora.
  2. W oknie Rozszerzone elementy sterujące wybierz Raport o błędzie.

    Otworzy się ekran, na którym możesz zobaczyć szczegóły raportu o błędzie, takie jak zrzut ekranu, informacje o konfiguracji AVD i dziennik raportu o błędzie. Dostępne opcje Możesz też wpisać wiadomość z krokami odtwarzania, która ma zostać zapisana w raporcie.

  3. Poczekaj, aż raport o błędzie się zakończy, a potem kliknij Zapisz raport.

Rejestrowanie raportu o błędzie za pomocą narzędzia adb

Jeśli masz połączone tylko 1 urządzenie, możesz pobrać raport o błędzie za pomocą adb:

$ adb bugreport E:\Reports\MyBugReports

Jeśli nie określisz ścieżki do raportu o błędzie, zostanie on zapisany w folderze katalogu lokalnym.

Jeśli masz podłączonych kilka urządzeń, musisz wskazać to, przy użyciu funkcji Opcja: -s. Uruchom te polecenia adb, aby znajdź numer seryjny urządzenia i wygeneruj raport o błędzie:

$ adb devices
List of devices attached
emulator-5554      device
8XV7N15C31003476 device

$ adb -s 8XV7N15C31003476 bugreport

Zapisywanie starszego raportu o błędzie

Domyślnie raporty o błędach są zapisywane na stronie /bugreports. Możesz je wyświetlić w to polecenie:

$ adb shell ls /bugreports/
bugreport-foo-bar.xxx.YYYY-MM-DD-HH-MM-SS-dumpstate_log-yyy.txt
bugreport-foo-bar.xxx.YYYY-MM-DD-HH-MM-SS.zip
dumpstate-stats.txt

Następnie możesz pobrać plik ZIP za pomocą narzędzia adb pull:

$ adb pull /bugreports/bugreport-foo-bar.xxx.YYYY-MM-DD-HH-MM-SS.zip

Sprawdź plik ZIP z raportem o błędzie

Domyślnie nazwa pliku ZIP to bugreport-BUILD_ID-DATE.zip Plik ZIP może zawierać wiele plików, ale najważniejszym z nich jest bugreport-BUILD_ID-DATE.txt Ten to raport o błędzie, który zawiera dane diagnostyczne usług systemowych (dumpsys), logi błędów (dumpstate), i dzienników komunikatów systemowych (logcat). Komunikaty systemowe zawierają zrzuty stosu gdy urządzenie zgłasza błąd i komunikaty napisane ze wszystkich aplikacji z Log zajęcia.

Plik ZIP zawiera plik metadanych version.txt, który zawiera wersji Androida. Gdy funkcja Systrace jest włączona, plik ZIP zawiera plik systrace.txt. Narzędzie Systrace pomaga analizować skuteczność przechwytywanie i wyświetlanie czasów wykonywania procesów aplikacji i innych procesów systemu Android.

Narzędzie dumpstate kopiuje pliki z systemu plików urządzenia do pliku ZIP w folderze FS, aby móc się do nich odwołać. Przykład: plik /dirA/dirB/fileC na urządzeniu wygenerowałby FS/dirA/dirB/fileC w pliku ZIP.

Rysunek 3. Struktura pliku raportu o błędach.

Więcej informacji: Czytanie raportów o błędach

Otrzymuj raporty od użytkowników

Rejestrowanie raportów o błędach przydaje się, gdy korzystasz z aplikacji ale użytkownicy nie będą mogli łatwo udostępniać z Tobą. Aby otrzymywać raporty o awariach ze zrzutami stosu od rzeczywistych użytkowników: korzystać z raportów o awariach w Google Play i Firebase funkcje zabezpieczeń.

Konsola Google Play

Raporty możesz otrzymywać z Konsola Google Play aby wyświetlić dane dotyczące awarii, a aplikacja nie Błędy ANR (reagujące) w przypadku użytkowników, którzy zainstalowali Twoją aplikację z Google Play. Dostępne są dane z ostatnich 6 miesięcy.

Więcej informacji: Wyświetlanie awarii i błędów typu Aplikacja nie odpowiada (ANR) w Centrum pomocy Konsoli Play.

Zgłaszanie awarii Firebase

Funkcja raportowania Firebase Crashlytics generuje szczegółowe raporty o błędach . Błędy są grupowane w problemy na podstawie podobnych zrzutów stosu które są podzielone według wagi wpływu na użytkowników. Oprócz automatycznego możesz rejestrować zdarzenia niestandardowe, aby łatwiej przechwytywać kroki prowadzące do awarii.

Aby zacząć otrzymywać raporty o awariach od dowolnego użytkownika, dodaj Zależności Firebase do pliku build.gradle. Więcej informacji: Firebase Crashlytics.