步骤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#