使用Android studio时查看本地jni中so文件源码出错的位置

步骤1:在Android Studio中的Terminal工具栏中将命了目录跳转到工程的Obj文件夹所在的目录路径,(一般为...../src/main)

          跳转命令:     

cd  src/main

步骤2:将程序闪退时android studio中的报错信息复制下来,并存放到log.txt文件中,然后将该文件放在与obj文件夹所在的同级目录中(即src/main目录下)

出错信息在DEBUG中查看,如下图格式:

步骤3:最后执行指令将能够显示具体的错误信息的提示保存到src/main文件夹下的trace.txt文件中

ndk-stack -sym obj/local/armeabi -dump log.txt >trace.txt

 

 

 

 

ndk-stack 命令使用格式

$NDK/ndk-stack -sym $PROJECT_PATH/obj/local/armeabi

$NDK/ndk-stack -sym $PROJECT_PATH/obj/local/armeabi -dump foo.txt

 

解释一下: 

$NDK代表ndk所在的路径。 
$PROJECT_PATH 代表你工程路径 
obj/local/armeabi 代表你编译的cpu类型,针对不同的cpu可以换成armeabi-v7a,x86等等。这些名字都可以在obj/local/下看到。

 

可以在命令行模式下执行ndk-stack命令。第一个命令是用于log在cmd面板的情况。即使用 
adb logcat 命令启动命令行打印log的情况。这时使用ndk-stack 命令,可以将获取的结果显示到cmd面板。这个操作意义不大,忽略。 
第二个命令是读取存有log的文本文件,这个是我们要使用的。

为了方便操作,可以将ndk的目录配置到path环境变量中,这样就可以在任意目录使用ndk-stack命令了。 
P.S.在Path中配置ndk路径时,如果失败,可以在最后加一个斜线 \,比如我的 E:\android-ndk-r10c\

执行命令

因为我们会在obj所在的根目录执行 ndk-stack 命令,所以最后的命令要简单一些。 
 

 
ndk-stack -sym obj/local/armeabi -dump log.txt
  • 1

因为我的手机是armeabi的,所以我local下选的是armeabi 。 
执行成功后就会看到一大串输出。这个看起来比较费劲,我们还是让他输出到一个文件吧。稍微修改一下。

ndk-stack -sym obj/local/armeabi -dump log.txt >trace.txt
  • 1

这样执行成功后,就可以在当前目录下看到一个trace.txt,里面就是我们想要的内容。

 

参考博客:http://blog.csdn.net/change_from_now/article/details/53436581

http://blog.csdn.net/yincp/article/details/41896743#

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值