يتضمّن تقرير الأخطاء سجلات الجهاز وتتبع تسلسل استدعاء الدوال البرمجية ومعلومات تشخيص أخرى لمساعدتك في العثور على الأخطاء في تطبيقك وإصلاحها. لتسجيل تقرير خطأ من جهازك، يمكنك استخدام خيار إعداد تقرير بالأخطاء على الجهاز أو قائمة محاكي Android أو الأمر adb bugreport
في جهاز التطوير.
لإنشاء تقرير خطأ، يجب أن تكون خيارات المطوّرين مفعَّلة على جهازك للوصول إلى خيار إعداد تقرير بالأخطاء.
تسجيل تقرير خطأ من أحد الأجهزة
للحصول على تقرير خطأ مباشرةً من جهازك، عليك اتّباع الخطوات التالية:
- فعِّل خيارات المطوّرين.
- في خيارات المطوّرين، انقر على إعداد تقرير بالأخطاء.
- اختَر نوع تقرير الخطأ الذي تريده وانقر على الإبلاغ.
بعد لحظات، ستتلقّى إشعارًا بأنّ تقرير الخطأ جاهز، كما هو موضّح في الشكل 2.
- لمشاركة تقرير الخطأ، انقر على الإشعار.
تسجيل تقرير خطأ من محاكي Android
من محاكي Android، يمكنك استخدام ميزة الإبلاغ عن خطأ في عناصر التحكّم الموسّعة:
- انقر على رمز المزيد في لوحة "المحاكي".
في نافذة عناصر التحكّم الموسّعة، اختَر تقرير الخطأ.
سيؤدّي ذلك إلى فتح شاشة يمكنك من خلالها الاطّلاع على تفاصيل تقرير الخطأ، مثل لقطة الشاشة ومعلومات إعداد AVD وسجلّ تقرير الخطأ. يمكنك أيضًا كتابة رسالة تتضمّن خطوات إعادة الإنتاج لحفظها في التقرير.
انتظر حتى يتم الانتهاء من جمع تقرير الخطأ، ثم انقر على حفظ التقرير.
تسجيل تقرير خطأ باستخدام 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.
للحصول على مزيد من المعلومات، يمكنك الاطّلاع على قراءة تقارير الأخطاء.
الحصول على تقارير من المستخدمين
يكون تسجيل تقارير الأخطاء مفيدًا أثناء استخدام التطبيق بنفسك، ولكن لا يمكن للمستخدمين النهائيين مشاركة هذه الأنواع من تقارير الأخطاء معك بسهولة. وللحصول على تقارير الأعطال باستخدام تتبعات تسلسل استدعاء الدوال البرمجية من مستخدمين حقيقيين، استفد من ميزات إعداد تقارير الأعطال في Google Play وFirebase.
Google Play Console
يمكنك الحصول على تقارير من Google Play Console لعرض بيانات الأعطال وأخطاء "التطبيق لا يستجيب" (ANR) من المستخدمين الذين ثبّتوا تطبيقك من Google Play. تتوفر البيانات من الأشهر الستة السابقة.
لمزيد من المعلومات، يُرجى الاطّلاع على القسم عرض الأعطال وأخطاء عدم استجابة التطبيقات (ANR) في مساعدة Play Console.
إعداد تقارير الأعطال في Firebase
تُنشئ تقارير Firebase Crashlytics تقارير تفصيلية عن الأخطاء في تطبيقك. ويتمّ تجميع الأخطاء في مشاكل بناءً على عمليات تتبُّع تسلسل استدعاء الدوال البرمجية المشابهة، ثم فرزها حسب خطورة التأثير في المستخدمين. بالإضافة إلى التقارير التلقائية، يمكنك تسجيل أحداث مخصّصة للمساعدة في تحديد الخطوات التي تؤدي إلى تعطُّل.
لبدء تلقّي تقارير الأعطال من أي مستخدم، عليك إضافة
تبعيات Firebase
إلى ملف build.gradle
. للحصول على مزيد من المعلومات، يمكنك الاطّلاع على
Firebase Crashlytics.