全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网

Native_crash

更新时间:2017-06-07 13:26:11

问题分析:

Native的Crash是指在C/C++运行时出错,系统产生了Linux错误信号,导致的进程出错退出。可以通过系统的logcat来分析crash日志。

解决方案:

应用在C/C++运行时出错,系统产生了Linux错误信号,导致的进程出错退出。建议开发者使用NDK工具ndk-stack进行分析定位。

Android开发中,在Java层可以方便的捕获crashlog,但对于Native层的crashlog通常无法直接获取,只能通过系统的logcat来分析crash日志。这里我们建议开发者使用NDK工具ndk-stack进行分析定位。

  1. 下载最新版NDK:NDK下载地址。ndk-stack工具就在NDK主目录下。

  2. 在mqc管理中心找到出现Native Crash的测试,并下载日志。

  3. 根据失败机型查找该机型的CPU信息ro.product.cpu.abi,如图三星N7100的cpu类型为armeabi-v7a。(目前mqc上的模拟器cpu类型均为x86_64。)

  4. 使用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的对应代码文件和具体行数。

本文导读目录