问题分析
Native的Crash是指在C/C++运行时出错,系统产生了Linux错误信号,导致的进程出错退出。可以通过系统的logcat来分析Crash日志。
解决方案
应用在C/C++运行时出错,系统产生了Linux错误信号,导致的进程出错退出。建议开发者使用NDK工具ndk-stack进行分析定位。
Android开发中,在Java层可以方便的捕获crashlog,但对于Native层的crashlog通常无法直接获取,只能通过系统的logcat来分析Crash日志。这里我们建议开发者使用NDK工具ndk-stack进行分析定位。
下载最新版NDK。ndk-stack工具就在NDK主目录下。
在mqc管理中心找到出现Native Crash的测试,并下载日志。
根据失败机型查找该机型的CPU信息
ro.product.cpu.abi
,如图三星N7100的CPU类型为armeabi-v7a。(目前mqc上的模拟器CPU类型均为x86_64。)使用ndk-stack分析出错位置,命令格式如下:
$NDK/ndk-stack -sym $PROJECT_PATH/obj/local/$cpu.abi -dump $LOGCAT_PATH
本示例使用的命令如下:
ndk-stack -sym ./workspace2/testNdkStack/obj/local/armeabi-v7a/ -dump ./logcat.log > result.log
在result.log中可以分析定位到出现该Crash的对应代码文件和具体行数。
文档内容是否对您有帮助?