NDK开发之函数无返回值导致的crash 【NDK开发之函数无返回值导致的crash】最近在学习FFmpeg,遇到了一个莫名其妙的native crash,堆栈解析出来是在这么一行:
文章图片
起初以为是我使用FFmpeg的方式有问题导致了av_read_frame的crash,最后查了半天也没发现哪里调错了,最后突然看到我好像没有加return 0,于是加上去试了下,然后就不崩溃了。。。AS对于NDK的代码错误提示的支持太弱了,这种明显的错误竟然没有直接导致编译失败。
解决方式:在Cmake中加入这一行代码
文章图片
Build后在warning信息里搜索“reaches end of non-void function”,就可以找到代码中所有没有返回值的函数。
文章图片
推荐阅读
- Android|Android C/C++开发指南
- android|Android NDK JNI 入门笔记-day05-NDK应用签名校验
- android|Android NDK JNI 入门笔记-day03-引用数据类型
- android|Android NDK JNI 入门笔记-day02-基本数据类型数据传递
- android|将 so|JNI|NDK 之间的关系说明白
- android|Android.mk语法说明
- opengl|Android NDK 开发 —— 从 Assets 文件夹加载图片并上传纹理
- android|Android NDK开发之JNI基础