Analisis crash di Android
Untuk crash di Native (Android) dan Unity (Android), silakan lihat penjelasan di bawah ini.
Mendapatkan lokasi crash selama pengembangan
Saat men-debug program Native Android di Android Studio, Anda perlu mengubah Debugger - Debug type menjadi Dual (Java + Native) di pengaturan Configuration.

Informasi yang diperlukan saat men-debug di Android Studio ditunjukkan pada gambar di bawah ini.

Di lldb, masukkan bt untuk mendapatkan penyebab crash dan stack kode, seperti di bawah ini
(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
Ketika konten terkait libEasyAR.so ada di stack kode, itu mungkin menunjukkan crash terkait dengan EasyAR; jika tidak ada, kemungkinan besar crash tidak terkait dengan EasyAR.
Di lldb, masukkan image dump sections libEasyAR.so untuk mendapatkan alamat pemuatan bagian .text dari pustaka dinamis, seperti di bawah ini
(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
...
Mendapatkan lokasi crash setelah rilis
Setelah rilis, crash juga mungkin terjadi.
Jika crash dapat direproduksi, Anda dapat mencoba menggunakan alat Profile/Debug bawaan Android Studio. Kemudian lakukan seperti yang dilakukan selama pengembangan untuk mendapatkan lokasi crash.

Jika crash sulit direproduksi, Anda dapat menggunakan beberapa pustaka laporan crash untuk mencegat informasi crash aplikasi dan melaporkannya ke server. Namun perlu diperhatikan bahwa informasi crash harus menyertakan stack kode dan alamat pemuatan modul. Karena Android mulai dari versi 4.0 memperkenalkan ASLR (address space layout randomization), alamat pemuatan modul pustaka dinamis dapat berbeda setiap kali dijalankan, yang menyebabkan alamat kode juga berubah secara dinamis. Hanya dengan mengetahui nilai relatif antara alamat kode di stack kode dan alamat pemuatan modul pustaka dinamis, kita dapat mengetahui di mana program mengalami crash.
Ketika konten terkait libEasyAR.so ada di stack kode, itu mungkin menunjukkan crash terkait dengan EasyAR; jika tidak ada, kemungkinan besar crash tidak terkait dengan EasyAR.
Informasi crash terkait lainnya
Nomor versi EasyAR Sense dan EasyAR Sense Unity Plugin
Seperti 4.7.0.11800-cf8e24e30
Edisi Komunitas/Edisi Perusahaan
Arsitektur CPU
aarch64/armeabi-v7a