问题定位:signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr
我们在写JNI代码时,经常会遇到so文件报错的情况,如下
要查找这种问题,还是比较棘手的
此时,我们需要借助系统源码工具,找到对应so库文件具体报错地方
系统源码中工具路径
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/bin/arm-linux-androideabi-addr2line
将出问题so文件拷贝至工具目录位置,执行如下命令
arm-linux-androideabi-addr2line -f -e ./libopensdk.so 0x00010021
如果出现的结果是
??:?或??:0
说明so库文件是加密了的,要想取到未加密的so库文件,请到系统源码中out目录下的/system/lib目录拷贝对应的so文件
发布于 2021-02-25 14:43