Décoder les plantages Android et les erreurs ANR pour les jeux Unity

Les plantages et les erreurs ANR sur Android génèrent une trace de la pile, c'est-à-dire un instantané de la séquence des fonctions imbriquées appelées dans votre jeu jusqu'au moment du plantage. Ces instantanés peuvent vous aider à identifier et à résoudre les problèmes dans la source.

Toutefois, lorsque vous créez votre jeu avec Unity en mode version, les symboles ne sont pas empaquetés avec l'APK. Si votre jeu plante ou présente des erreurs ANR, la pile d'appel n'affiche que l'adresse de la mémoire.

Exemple :

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 permet d'importer un fichier de symboles de débogage pour chaque version de votre application dans la Play Console. Cette opération facilite l'analyse ainsi que la résolution des plantages et des erreurs ANR.

À partir d'Unity 2020.3 et versions ultérieures, vous pouvez suivre les instructions d'Unity pour générer Symboles Android puis importez le fichier de décodage sur Google Play Console pour afficher une trace de la pile lisible par l'humain sur Android Vitals tableau de bord.

Sinon, vous pouvez suivre l'article sur la symbolisation des plantages Android dans Unity pour résoudre manuellement la trace de la pile ou générer des fichiers de symboles pour les versions antérieures d'Unity.