问题定位:signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr

问题定位: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