Analisi dei crash su Android
Per i crash su nativo (Android) e Unity (Android), fare riferimento alle seguenti istruzioni.
Ottenere la posizione del crash durante lo sviluppo
Quando si esegue il debug di programmi nativi Android in Android Studio, è necessario modificare Debugger - Debug type in Dual (Java + Native) nelle impostazioni di Configuration.

Le informazioni necessarie durante il debug in Android Studio sono mostrate nella figura seguente.

In lldb, digitare bt per ottenere la causa del crash e il call stack, come segue:
(lldb) bt
* thread #16, name = 'samples.helloar', stop reason = signal SIGSEGV: invalid address (fault address: 0x9c40)
* frame #0: 0x0000004922f3a1d8 libEasyAR.so`___lldb_unnamed_symbol3056$$libEasyAR.so + 6088
frame #1: 0x0000004922f38568 libEasyAR.so`___lldb_unnamed_symbol3054$$libEasyAR.so + 288
frame #2: 0x0000004922f347f8 libEasyAR.so`___lldb_unnamed_symbol2876$$libEasyAR.so + 332
frame #3: 0x00000049be2390c8 libc.so`__pthread_start(void*) + 40
frame #4: 0x00000049be1f04f8 libc.so`__start_thread + 72
Quando nel call stack sono presenti contenuti relativi a libEasyAR.so, potrebbe indicare che il crash è correlato a EasyAR; se non presenti, è probabile che il crash non sia correlato a EasyAR.
In lldb, digitare image dump sections libEasyAR.so per ottenere l'indirizzo di caricamento della sezione .text della libreria dinamica, come segue:
(lldb) image dump sections libEasyAR.so
...
SectID Type Load Address Perm File Off. File Size Flags Section Name
...
0x00000010 code [0x0000004922e30cfc-0x0000004923654558) r-x 0x00256cfc 0x0082385c 0x00000006 libEasyAR.so..text
...
Ottenere la posizione del crash dopo il rilascio
Dopo il rilascio, potrebbero verificarsi anche crash.
Se si verifica un crash riproducibile, è possibile utilizzare lo strumento Profile/Debug integrato in Android Studio. Quindi, seguendo l'approccio durante lo sviluppo, è possibile ottenere la posizione del crash.

Se si verifica un crash difficile da riprodurre, è possibile utilizzare alcune librerie di report crash per intercettare le informazioni sul crash dell'applicazione e segnalarle al server. Tuttavia, è importante notare che le informazioni sul crash devono includere il call stack e gli indirizzi di caricamento dei moduli. Dato che Android ha introdotto ASLR (Address Space Layout Randomization) dalla versione 4.0, gli indirizzi di caricamento dei moduli di librerie dinamiche possono variare ad ogni esecuzione, causando anche cambiamenti dinamici negli indirizzi di codice. Solo conoscendo il valore relativo tra l'indirizzo di codice nello stack e l'indirizzo di caricamento del modulo della libreria dinamica, è possibile determinare dove si è verificato il crash.
Quando nel call stack sono presenti contenuti relativi a libEasyAR.so, potrebbe indicare che il crash è correlato a EasyAR; se non presenti, è probabile che il crash non sia correlato a EasyAR.
Altre informazioni correlate al crash
Versione di EasyAR Sense e EasyAR Sense Unity Plugin
Ad esempio 4.7.0.11800-cf8e24e30
Edizione Community/Enterprise
Architettura CPU
aarch64/armeabi-v7a