تسجيل تقارير الأخطاء وقراءتها

يتضمّن تقرير الأخطاء سجلات الجهاز وتتبع تسلسل استدعاء الدوال البرمجية ومعلومات تشخيص أخرى لمساعدتك في العثور على الأخطاء في تطبيقك وإصلاحها. لتسجيل تقرير خطأ من جهازك، يمكنك استخدام خيار إعداد تقرير بالأخطاء على الجهاز أو قائمة محاكي Android أو الأمر adb bugreport في جهاز التطوير.

الشكل 1. خيارات المطوّرين على الجهاز

لإنشاء تقرير خطأ، يجب أن تكون خيارات المطوّرين مفعَّلة على جهازك للوصول إلى خيار إعداد تقرير بالأخطاء.

تسجيل تقرير خطأ من أحد الأجهزة

الشكل 2. تقرير الخطأ جاهز.

للحصول على تقرير خطأ مباشرةً من جهازك، عليك اتّباع الخطوات التالية:

  1. فعِّل خيارات المطوّرين.
  2. في خيارات المطوّرين، انقر على إعداد تقرير بالأخطاء.
  3. اختَر نوع تقرير الخطأ الذي تريده وانقر على الإبلاغ.

    بعد لحظات، ستتلقّى إشعارًا بأنّ تقرير الخطأ جاهز، كما هو موضّح في الشكل 2.

  4. لمشاركة تقرير الخطأ، انقر على الإشعار.

تسجيل تقرير خطأ من محاكي Android

من محاكي Android، يمكنك استخدام ميزة الإبلاغ عن خطأ في عناصر التحكّم الموسّعة:

  1. انقر على رمز المزيد في لوحة "المحاكي".
  2. في نافذة عناصر التحكّم الموسّعة، اختَر تقرير الخطأ.

    سيؤدّي ذلك إلى فتح شاشة يمكنك من خلالها الاطّلاع على تفاصيل تقرير الخطأ، مثل لقطة الشاشة ومعلومات إعداد AVD وسجلّ تقرير الخطأ. يمكنك أيضًا كتابة رسالة تتضمّن خطوات إعادة الإنتاج لحفظها في التقرير.

  3. انتظر حتى يتم الانتهاء من جمع تقرير الخطأ، ثم انقر على حفظ التقرير.

تسجيل تقرير خطأ باستخدام Adb

إذا كان لديك جهاز واحد فقط متصل، يمكنك الحصول على تقرير خطأ باستخدام adb على النحو التالي:

$ adb bugreport E:\Reports\MyBugReports

إذا لم تحدّد مسارًا لتقرير الخطأ، سيتم حفظه في الدليل المحلي.

إذا كانت لديك عدة أجهزة متصلة، يجب تحديد الجهاز باستخدام الخيار -s. شغِّل أوامر adb التالية للحصول على الرقم التسلسلي للجهاز وإنشاء تقرير الخطأ:

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

$ adb -s 8XV7N15C31003476 bugreport

حفظ تقرير خطأ قديم

بشكل تلقائي، يتم حفظ تقارير الأخطاء في /bugreports ويمكن الاطّلاع عليها باستخدام الأمر التالي:

$ 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

يمكنك بعد ذلك سحب الملف المضغوط عبر adb pull:

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

فحص ملف ZIP لتقرير الخطأ

بشكل تلقائي، يُسمى ملف zip bugreport-BUILD_ID-DATE.zip. ويمكن أن يحتوي ملف zip على ملفات متعددة، ولكن الملف الأكثر أهمية هو bugreport-BUILD_ID-DATE.txt. هذا تقرير الأخطاء الذي يتضمّن نتائج تشخيصية لخدمات النظام (dumpsys) وسجلّات الأخطاء (dumpstate) وسجلّات رسائل النظام (logcat). تتضمّن رسائل النظام عمليات تتبُّع تسلسل استدعاء الدوال البرمجية عندما يعرض الجهاز خطأً ورسائل مكتوبة من جميع التطبيقات من الفئة Log.

يحتوي ملف ZIP على ملف البيانات الوصفية version.txt الذي يحتوي على خطاب إصدار Android. عند تفعيل systrace، يحتوي ملف zip أيضًا على ملف systrace.txt. تساعد أداة Systrace في تحليل أداء تطبيقك من خلال تسجيل وعرض مدد التنفيذ لعمليات تطبيقك وعمليات نظام Android الأخرى.

تنسخ أداة dumpstate الملفات من نظام الملفات على الجهاز إلى ملف ZIP ضمن مجلد FS حتى تتمكّن من الرجوع إليها. على سبيل المثال، سينشئ ملف /dirA/dirB/fileC في الجهاز إدخال FS/dirA/dirB/fileC في ملف ZIP.

الشكل 3. بنية ملف تقرير الأخطاء

للحصول على مزيد من المعلومات، يمكنك الاطّلاع على قراءة تقارير الأخطاء.

الحصول على تقارير من المستخدمين

يكون تسجيل تقارير الأخطاء مفيدًا أثناء استخدام التطبيق بنفسك، ولكن لا يمكن للمستخدمين النهائيين مشاركة هذه الأنواع من تقارير الأخطاء معك بسهولة. وللحصول على تقارير الأعطال باستخدام تتبعات تسلسل استدعاء الدوال البرمجية من مستخدمين حقيقيين، استفد من ميزات إعداد تقارير الأعطال في Google Play وFirebase.

Google Play Console

يمكنك الحصول على تقارير من Google Play Console لعرض بيانات الأعطال وأخطاء "التطبيق لا يستجيب" (ANR) من المستخدمين الذين ثبّتوا تطبيقك من Google Play. تتوفر البيانات من الأشهر الستة السابقة.

لمزيد من المعلومات، يُرجى الاطّلاع على القسم عرض الأعطال وأخطاء عدم استجابة التطبيقات (ANR) في مساعدة Play Console.

إعداد تقارير الأعطال في Firebase

تُنشئ تقارير Firebase Crashlytics تقارير تفصيلية عن الأخطاء في تطبيقك. ويتمّ تجميع الأخطاء في مشاكل بناءً على عمليات تتبُّع تسلسل استدعاء الدوال البرمجية المشابهة، ثم فرزها حسب خطورة التأثير في المستخدمين. بالإضافة إلى التقارير التلقائية، يمكنك تسجيل أحداث مخصّصة للمساعدة في تحديد الخطوات التي تؤدي إلى تعطُّل.

لبدء تلقّي تقارير الأعطال من أي مستخدم، عليك إضافة تبعيات Firebase إلى ملف build.gradle. للحصول على مزيد من المعلومات، يمكنك الاطّلاع على Firebase Crashlytics.