استمتِع بأعطال Android وأخطاء ANR في ألعاب Unity

تؤدي الأعطال وأخطاء ANR على نظام التشغيل Android إلى إنشاء تتبُّع تسلسل استدعاء الدوال البرمجية، وهو نبذة عن تسلسل الوظائف المتداخلة التي تم طلبها في لعبتك حتى لحظة تعطُّله. يمكن أن تساعدك هذه اللقطات في تحديد أي مشاكل في المصدر وحلّها.

عند إنشاء لعبتك باستخدام Unity في وضع الإصدار، لا يتم تجميع الرموز مع حزمة APK. إذا تعطّلت لعبتك أو حدثت بها أخطاء ANR، لن تعرض حزمة المكالمات سوى عنوان الذاكرة.

على سبيل المثال:

05-26 18:06:51.311: A/libc(26986): Fatal signal 11 (SIGSEGV) at 0x000004e4 (code=1), thread 27024 (Worker Thread)
05-26 18:06:51.411: I/DEBUG(242): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
05-26 18:06:51.411: I/DEBUG(242): Build fingerprint: 'Xiaomi/cancro_wc_lte/cancro:4.4.4/KTU84P/V6.7.1.0.KXDCNCH:user/release-keys'
05-26 18:06:51.411: I/DEBUG(242): Revision: '0'
05-26 18:06:51.411: I/DEBUG(242): pid: 26986, tid: 27024, name: Worker Thread  >>> com.u.demo <<<
05-26 18:06:51.411: I/DEBUG(242): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 000004e4
 I/DEBUG(242): backtrace:
 I/DEBUG(242):     #00  pc 006d4960  /data/app-lib/com.u.demo-1/libunity.so
 I/DEBUG(242):     #01  pc 006d4c0c  /data/app-lib/com.u.demo-1/libunity.so
 I/DEBUG(242):     #02  pc 006d4c0c  /data/app-lib/com.u.demo-1/libunity.so
 I/DEBUG(242):     #03  pc 006d4c0c  /data/app-lib/com.u.demo-1/libunity.so
 I/DEBUG(242):     #04  pc 006d4c0c  /data/app-lib/com.u.demo-1/libunity.so
 I/DEBUG(242):     #05  pc 001c5510  /data/app-lib/com.u.demo-1/libunity.so
 I/DEBUG(242):     #06  pc 001c595c  /data/app-lib/com.u.demo-1/libunity.so
 I/DEBUG(242):     #07  pc 001c4ec0  /data/app-lib/com.u.demo-1/libunity.so
 I/DEBUG(242):     #08  pc 0043a05c  /data/app-lib/com.u.demo-1/libunity.so
 I/DEBUG(242):     #09  pc 0000d248  /system/lib/libc.so (__thread_entry+72)
 I/DEBUG(242):     #10  pc 0000d3e0  /system/lib/libc.so (pthread_create+240)

يتيح Google Play تحميل ملف رموز تصحيح الأخطاء لكل إصدار من تطبيقك في Play Console. يتيح لك هذا الإجراء تحليل الأعطال وأخطاء ANR وإصلاحها.

بدءًا من Unity 2020.3 والإصدارات الأحدث، يمكنك اتّباع إرشادات Unity لإنشاء رموز Android ثم تحميل ملف الرموز إلى Google Play Console للاطّلاع على تتبُّع تسلسل استدعاء الدوال البرمجية من خلال شخص سهل القراءة على لوحة بيانات "مؤشرات Android الحيوية".

بخلاف ذلك، يمكنك متابعة مقالة أعطال نظام التشغيل Android Symbolicate من Unity لحل تتبع تسلسل استدعاء الدوال البرمجية يدويًا أو إنشاء ملفات رموز لإصدارات Unity الأدنى.