Analisi dei crash su Android
Per i crash su Native (Android) e Unity (Android), fare riferimento alle seguenti istruzioni.
Ottenere le posizioni dei crash durante lo sviluppo
Quando si esegue il debug di un programma Android Native in Android Studio, nelle impostazioni Configuration è necessario impostare Debugger - Debug type su Dual (Java + Native).

Le informazioni necessarie durante il debug in Android Studio sono mostrate di seguito.

Inserire bt in lldb per ottenere la causa del crash e il code 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 il code stack contiene contenuti relativi a libEasyAR.so, può indicare che il crash è correlato a EasyAR. Se non li contiene, è molto probabile che il crash non sia correlato a EasyAR.
Inserire image dump sections libEasyAR.so in lldb per ottenere la load address della sezione .text nella dynamic library, 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 le posizioni dei crash dopo il release
I crash possono verificarsi anche dopo il release.
Se si verifica un crash riproducibile, puoi provare a usare lo strumento Profile/Debug integrato in Android Studio. Quindi seguire il metodo usato durante lo sviluppo per ottenere la posizione del crash.

Se un crash è difficile da riprodurre, puoi usare una crash reporting library per intercettare le informazioni di crash dell'applicazione e inviarle a un server. Tuttavia, le informazioni di crash devono includere sia il code stack sia la module load address. Poiché Android ha introdotto ASLR (address space layout randomization) a partire dalla 4.0, la load address del modulo dynamic library può essere diversa a ogni esecuzione, causando variazioni dinamiche anche della code address. Solo conoscendo il valore relativo tra la code address nel code stack e la load address del modulo dynamic library è possibile sapere dove si è verificato il crash del programma.
Quando il code stack contiene contenuti relativi a libEasyAR.so, può indicare che il crash è correlato a EasyAR. Se non li contiene, è molto probabile che il crash non sia correlato a EasyAR.
Altre informazioni relative ai crash
Numero di versione di EasyAR Sense e EasyAR Sense Unity Plugin
Ad esempio, 4.7.0.11800-cf8e24e30
Community Edition / Enterprise Edition
Architettura CPU
aarch64/armeabi-v7a