Hata raporlarını yakalama ve okuma

Hata raporu, uygulamanızdaki hataları bulup düzeltmenize yardımcı olacak cihaz günlüklerini, yığın izlemeleri ve diğer teşhis bilgilerini içerir. Cihazınızdan bir hata raporu yakalamak için cihazdaki Hata raporu al geliştirici seçeneğini, Android Emülatör menüsünü veya geliştirme makinenizdeki adb bugreport komutunu kullanın.

Şekil 1. Bir cihazdaki geliştirici seçenekleri.

Hata raporu almak için Hata raporu al seçeneğine erişmek üzere cihazınızda Geliştirici seçenekleri'ni etkinleştirmiş olmanız gerekir.

Cihazdan hata raporu al

2. Şekil. Hata raporu hazır.

Doğrudan cihazınızdan hata raporu almak için aşağıdakileri yapın:

  1. Geliştirici Seçenekleri'ni etkinleştirin.
  2. Geliştirici seçenekleri'nde Hata raporu al'a dokunun.
  3. İstediğiniz hata raporu türünü seçin ve Bildir'e dokunun.

    Kısa bir süre sonra, Şekil 2'de gösterildiği gibi hata raporunun hazır olduğuna dair bir bildirim alırsınız.

  4. Hata raporunu paylaşmak için bildirime dokunun.

Android Emülatör'den hata raporu alın

Android Emulator'daki genişletilmiş denetimlerdeki Hata bildir özelliğini kullanabilirsiniz:

  1. Emülatör panelinde Diğer'i tıklayın.
  2. Genişletilmiş denetimler penceresinde Hata raporu'nu seçin.

    Bu işlemden sonra ekran görüntüsü, AVD yapılandırma bilgileri ve hata raporu günlüğü gibi hata raporu ayrıntılarını görebileceğiniz bir ekran açılır. Ayrıca, raporla birlikte kaydetmek için yeniden oluşturma adımlarını içeren bir mesaj da yazabilirsiniz.

  3. Hata raporunun toplanmasını bekleyin, ardından Raporu Kaydet'i tıklayın.

Adb'yi kullanarak hata raporu alma

Bağlı tek bir cihazınız varsa adb ile aşağıdaki şekilde hata raporu alabilirsiniz:

$ adb bugreport E:\Reports\MyBugReports

Hata raporu için bir yol belirtmezseniz rapor yerel dizine kaydedilir.

Bağlı birden fazla cihazınız varsa cihazı -s seçeneğiyle belirtmeniz gerekir. Cihazın seri numarasını almak ve hata raporunu oluşturmak için aşağıdaki adb komutlarını çalıştırın:

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

$ adb -s 8XV7N15C31003476 bugreport

Daha eski bir hata raporunu kaydet

Varsayılan olarak hata raporları /bugreports konumuna kaydedilir ve aşağıdaki komut kullanılarak görüntülenebilir:

$ 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

Daha sonra, zip dosyasını adb pull aracılığıyla alabilirsiniz:

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

Hata raporu zip dosyasını incele

ZIP dosyasının adı varsayılan olarak bugreport-BUILD_ID-DATE.zip şeklindedir. ZIP dosyası birden fazla dosya içerebilir, ancak en önemli dosya bugreport-BUILD_ID-DATE.txt dosyasıdır. Bu hata raporu, sistem hizmetleri (dumpsys), hata günlükleri (dumpstate) ve sistem mesajı günlükleri (logcat) için teşhis çıktılarını içerir. Sistem mesajları, cihaz bir hata verdiğinde yığın izlemeleri ve Log sınıfına sahip tüm uygulamalardan yazılan mesajları içerir.

ZIP dosyasında, Android sürüm mektubunu içeren bir version.txt meta veri dosyası bulunur. Systrace etkinleştirildiğinde, zip dosyası bir systrace.txt dosyası da içerir. Systrace aracı, uygulama işlemlerinizin ve diğer Android sistem işlemlerinin yürütme sürelerini kaydedip göstererek uygulamanızın performansını analiz etmenize yardımcı olur.

dumpstate aracı, cihazın dosya sistemindeki dosyaları FS klasörünün altındaki zip dosyasına kopyalar. Böylece bu dosyalara referans verebilirsiniz. Örneğin, cihazdaki /dirA/dirB/fileC dosyası, zip dosyasında FS/dirA/dirB/fileC girişi oluşturur.

3. Şekil. Hata raporu dosya yapısı.

Daha fazla bilgi için Hata raporlarını okuma bölümüne bakın.

Kullanıcılarınızdan rapor alın

Uygulamayı kullanırken hata raporlarını toplamak size kolaylık sağlar, ancak son kullanıcılarınız bu tür hata raporlarını sizinle kolayca paylaşamaz. Gerçek kullanıcılardan yığın izlemeleri içeren kilitlenme raporları almak için Google Play ve Firebase kilitlenme raporu özelliklerinden yararlanın.

Google Play Console

Uygulamanızı Google Play'den yükleyen kullanıcılardan gelen kilitlenmeler ve uygulama yanıt vermiyor (ANR) hatalarına ilişkin verileri görüntülemek için Google Play Console'dan raporlar alabilirsiniz. Önceki altı aya ait veriler mevcuttur.

Daha fazla bilgi için Play Console yardım sayfasındaki Kilitlenmeleri ve uygulama yanıt vermiyor (ANR) hatalarını görüntüleme bölümüne bakın.

Firebase kilitlenme raporu

Firebase Crashlytics raporlaması, uygulamanızdaki hataların ayrıntılı raporlarını oluşturur. Hatalar, benzer yığın izlemelere (stack trace) göre sorunlar halinde gruplanır ve kullanıcılarınız üzerindeki etkinin şiddetine göre önceliklendirilir. Otomatik raporlara ek olarak, kilitlenmeye yol açan adımların belirlenmesine yardımcı olmak için özel etkinlikleri günlüğe kaydedebilirsiniz.

Herhangi bir kullanıcıdan kilitlenme raporu almaya başlamak için build.gradle dosyanıza Firebase bağımlılıklarını ekleyin. Daha fazla bilgi için Firebase Crashlytics'i inceleyin.