NDK开发包中自带的NDK-STACK工具是可以查看崩溃栈信息,但我尝试一下发现出现的信息中没有代码行信息(就是Routine开头相关信息),后折腾半天发现是没有在NDK目录下执行相关命令造成的,晕啊…………
现将过程总结下:
1.编译SO库
2.运行CMD,CD到NDK安装目录(切记这个!!!)
3.运行应用出现崩溃后,adb logcat -d > log.txt(将日志导出到文档)
4.ndk-stack -sym 工程目录\obj\local\armeabi -dump log.txt
********** Crash dump: **********
Build fingerprint: 'Xiaomi/dior/dior:4.4.2/KVT49L/KHICNBF6.0:user/release-keys'
pid: 17551, tid: 17755, name: pool-1-thread-1 >>> com.smart <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000
Stack frame I/DEBUG ( 200): #00 pc 00008ae4 /data/app-lib/com.smart/libmy.so (JniSession::Start(_JNIEnv*, _jobject*, _jobject*,
int)+40): Routine JniSession::Start(_JNIEnv*, _jobject*, _jobject*, int) at //jni/JniSession.cpp:198