1、 找到崩溃记录的tombstone,在系统/data/tombstones目录下,根据文件创建时间,确定崩溃创建的是哪个tombstone。
2、 在tombstone中找到backtrace位置。左边红框崩溃时的堆栈地址,右边红框是引起崩溃的so库。
3、找到编译ndk对应的工具addr2line。如ndk-r14b,使用的是
/opt/android-ndk-r14b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-addr2line,可自己在服务器设置export变量。
4、 在服务器上找到jni编译时,生成在对应obj目录的so库文件,如~/media/trunk_media/jni,对应的obj目录是~/media/trunk_media/obj/local/armeabi-v7a。
在该目录下输入命令,即可定位哪一行出现问题。
/opt/android-ndk-r14b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-addr2line -e libMediaTransport.so 0x0000da8a