android程序员在做jni开发时时常会出现程序崩溃的现象,最近几日在调试jni的过程中程序突然的崩溃让我懊恼不已,app logcat只会给java代码的错误捕获,对于jni中的错误不会有明显的提示,只会给一个大概的方向,这让我们在jni代码中寻找错误实在是很麻烦。
ndk给我们提供了一个工具。
我们在as 工具中的terminal命令行中首先进入 main目录下面,(cd app/src/main)
然后输入 adb shell logcat | ndk-stack -sym obj/local/armeabi-v7a(这个是你app支持的cpu架构中的任何一个都可以)
错误直接定在在jniUtils_ffempegUtils.c的第50行,然后们就可以有目的的去修改这个问题,另外需要提醒的是,这个日志打印错误的同时也输出了捕获异常的时间,一般最后一个错误就是最新发生的。ctrl + c 退出该次命令。