Raport błędu zawiera dzienniki urządzenia, ślady stosu i inne informacje diagnostyczne, które pomogą Ci znaleźć i naprawić błędy w aplikacji. Możesz przechwycić raport o błędach z urządzenia, używając opcji dewelopera Take bug report na urządzeniu, menu Android Emulator lub polecenia adb bugreport
na komputerze deweloperskim.
Figura 1. Opcje dewelopera
Aby wykonać raport o błędzie, musisz mieć włączone opcje dewelopera na swoim urządzeniu, aby uzyskać dostęp do opcji Wykonaj raport o błędzie.
Wykonaj raport o błędzie z urządzenia
Figura 2. Raport o błędzie jest gotowy
Aby uzyskać raport o błędzie bezpośrednio z urządzenia, wykonaj następujące czynności:
- Upewnij się, że masz włączone Opcje programisty.
- W Opcjach programisty stuknij opcję Weź raport o błędzie.
- Wybierz typ raportu o błędzie i stuknij opcję Zgłoś.
Po chwili pojawi się powiadomienie, że raport o błędzie jest gotowy (patrz rys. 2).
- Aby udostępnić raport o błędzie, stuknij powiadomienie.
Złapanie raportu o błędzie z emulatora systemu Android
Z emulatora systemu Android możesz użyć funkcji Złóż raport o błędzie w rozszerzonych elementach sterujących:
- Kliknij przycisk Więcej w panelu emulatora.
-
W oknie Extended controls, wybierz Bug report on the left.
To otwiera ekran, na którym można zobaczyć szczegóły raportu o błędzie, takie jak zrzut ekranu, informacje o konfiguracji AVD i dziennik raportu o błędzie. Można również wpisać wiadomość z krokami reprodukcji, aby zapisać ją w raporcie.
-
Poczekaj na zakończenie zbierania raportu o błędzie, a następnie kliknij przycisk Zapisz raport.
Przechwytywanie raportu o błędach za pomocą adb
Jeśli masz podłączone tylko jedno urządzenie, możesz uzyskać raport o błędach za pomocąadb
w następujący sposób:
$ adb bugreport E:\Reports\MyBugReports
Jeśli nie określisz ścieżki do raportu o błędach, zostanie on zapisany w katalogu lokalnym.
Jeśli masz podłączonych wiele urządzeń, musisz określić urządzenie za pomocą opcji-s
. Uruchom następujące polecenia adb
, aby uzyskać numer seryjny urządzenia i wygenerować raport o błędach.
$ adb devicesList of devices attachedemulator-5554 device8XV7N15C31003476 device$ adb -s 8XV7N15C31003476 bugreport
Sprawdź plik ZIP raportu o błędach
Domyślnie plik ZIP ma nazwębugreport-BUILD_ID-DATE.zip
i może zawierać wiele plików, ale najważniejszy jest plikbugreport-BUILD_ID-DATE.txt
. Jest to raport o błędach i zawiera dane diagnostyczne dla usług systemowych (dumpsys
), dzienniki błędów (dumpstate
) i dzienniki komunikatów systemowych (logcat
). Komunikaty systemowe zawierają ślady stosu, gdy urządzenie wyrzuca błąd, oraz komunikaty pisane ze wszystkich aplikacji z klasąLog
.
Plik ZIP zawiera plik metadanych version.txt
, który zawiera list wydania Androida, a gdy włączona jest funkcja systrace, plik ZIP zawiera również plik systrace.txt
. Narzędzie Systrace pomaga analizować wydajność aplikacji przez przechwytywanie i wyświetlanie czasów wykonania 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
, dzięki czemu można się do nich odwoływać. Na przykład plik /dirA/dirB/fileC
w urządzeniu spowoduje wygenerowanie wpisuFS/dirA/dirB/fileC
w pliku ZIP.
Rysunek 3. Struktura pliku raportu o błędach
Więcej informacji można znaleźć w rozdziale Odczytywanie raportów o błędach.
Uzyskaj raporty od swoich użytkowników
Przechwytywanie raportów o błędach w sposób opisany powyżej jest pomocne podczas samodzielnego korzystania z aplikacji, ale użytkownicy końcowi nie mogą łatwo dzielić się z Tobą tego typu raportami. Aby uzyskać raporty o awariach ze śladami stosu od rzeczywistych użytkowników, należy skorzystać z funkcji raportowania awarii w Google Play i Firebase.
Google Play Console
Możesz uzyskać raporty zGoogle Play Console, aby wyświetlić dane o awariach i błędach braku odpowiedzi aplikacji (ANR) od użytkowników, którzy zainstalowali Twoją aplikację w Google Play.Dane są dostępne dla ostatnich sześciu miesięcy.
Więcej informacji można znaleźć w sekcjiZobacz awarie &błędy braku odpowiedzi aplikacji (ANR) w pomocy Konsoli Play.
Raportowanie awarii w bazie danych Firebase
Raportowanie w bazie danych Firebase Crashlytics tworzy szczegółowe raporty błędów w aplikacji.Błędy są pogrupowane w problemy na podstawie podobnych śladów stosu i są rozwiązywane według ciężkości wpływu na użytkowników. Oprócz automatycznych raportów można rejestrować niestandardowe zdarzenia, aby pomóc uchwycić kroki prowadzące do awarii.
Możesz zacząć otrzymywać raporty o awariach od dowolnego użytkownika, po prostu dodając zależnościFirebase do swojego pliku build.gradle
. Więcej informacji można znaleźć w temacieFirebase Crashlytics.
.