Symbolication von Android-Abstürzen und ANR-Fehlern für Unity-Spiele

Abstürze und ANRs unter Android erzeugen einen Stacktrace. Dieser ist ein Snapshot der Abfolge verschachtelter Funktionen, die in deinem Spiel bis zum Absturz aufgerufen wurden. Mit diesen Snapshots können Sie Probleme in der Quelle identifizieren und beheben.

Wenn Sie Ihr Spiel jedoch mit Unity im Release-Modus erstellen, sind die Symbole nicht im APK enthalten. Wenn Ihr Spiel abstürzt oder ANRs auftritt, wird im Aufrufstack nur die Arbeitsspeicheradresse angezeigt.

Beispiele:

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 unterstützt das Hochladen einer Debug-Symboldatei für jede Version Ihrer App in der Play Console. Dadurch lassen sich Abstürze und ANRs leichter analysieren und beheben.

Ab Unity 2020.3 können Sie der Anleitung von Unity folgen, um Android-Symbole zu generieren, und dann die Symbolication-Datei in die Google Play Console hochladen, um einen menschenlesbaren Stacktrace im Android Vitals-Dashboard zu sehen.

Alternativ können Sie dem Artikel Symbolicating Android Absturz von Unity folgen, um den Stacktrace manuell aufzulösen oder Symboldateien für niedrigere Versionen von Unity zu generieren.