一、OpenCV移植到android之后,开发中遇到错误:android fatal signal 11(SIGSEGV) at 0xdeadbaad (code=1).很是纠结,参考https://community.freescale.com/docs/DOC-93378http://www.linkedin.com/groups/Application-crash-android-40-higher-86481.S.171547732,有的人说是程序中使用AsyncTask的问题,碰巧我程序里还真使用了。但经过仔细研究发现,如果报错:android fatal signal 11(SIGSEGV) at 0xdeadbaad (code=1).最先排查的还是本地C/C++代码的错误。 原来是opencv运算时矩阵维数错误的原因,导致程序奔溃。

二、原先Application.mk文件里APP_ABI=armeabi armeabi-v7a,所以生成的libs文件夹里总有两套这种东西。经查armeabi是指的该so库用于Arm的通用CPU,而v7a的CPU支持硬件浮点运算。因此armeabi通用性强,但速度慢,而v7a能充分发挥v7a CPU的能力。华为U9200cpu型号是OMAP4660,是A9的。查了半天也没看出来究竟支不支持硬件浮点运算。将armeabi去掉之后,原来的程序大小4.23M直接缩小至2.62M。运行良好,看来瘦身很关键啊。

三、原先在ndk-build编译本地库时,总是看到有libnative_camera_r2.2.2.so和一个r2.3.3.so生成,如下。奇怪的是,我在本地代码里根本没有使用camera模块。

借鉴这里http://stackoverflow.com/questions/9460424/opencv-on-android-duplicate-file-for-apk,在Application.mk文件里添加

OPENCV_CAMERA_MODULES:=off 

果然,再次编译安装的时候两个camera的库不安装了!注意这句话写在Android.mk里无效。

更多相关文章

  1. Android:开发中遇到的异常Error解析
  2. Android(安卓)XML Editor cannot process this input
  3. Android(安卓)requires compiler compliance level 5.0 or 6.0.
  4. 如何解决Eclipse开发android程序的编译错误:com/android/dx/comm
  5. Android(安卓)NDK 运行错误:java.lang.UnsatisfiedLinkError: Cou
  6. Android(安卓)SDK Manager 更新时的“https://dl-ssl.google.com
  7. animation of android (2)
  8. Android(安卓)Studio调错误方法
  9. Unity整合Android(安卓), 错误Fatal signal 11 (SIGSEGV)

随机推荐

  1. ConcurrentHashMap之size()方法
  2. java都为我们提供了各种锁,为什么还需要分
  3. Java线程之线程的调度-让步
  4. 常用控件的使用方法(参考书籍'第一行代码'
  5. mysql中的合并表和分区表详解(经常使用的
  6. hive beeline ClassNotFoundException
  7. Redis5.0中的内存淘汰策略详解(最新的版本
  8. Java实现单向链表
  9. 为什么 MongoDB 索引选择B-树,而 Mysql 索
  10. Android实现取消GridView中Item选中时默