2 u010000175 u010000175 于 2014.07.29 01:26 提问

Android上利用JNI调用OpenCV函数时出现Fatal signal 11错误

我想在Android上用OpenCV实现人脸识别功能,即事先有一个我提供的人脸训练库,然后检测出人脸后,识别他和训练库中的哪类人最像。

我已在windows平台实现了该功能,并将训练好的FaceRecognizer通过save的方式存储成了xml。我将xml文件放入了Android手机某目录下,然后想利用JNI的方式在Android app中使用OpenCV载入该数据库,但运行到这一行就会报错:

Fatal Signal 11 (SIGSEGV) at 0x42ff0000 (code=2), thread 8703...

这是我的相关代码:

JNIEXPORT jlong JNICALL Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeCreateObject
(JNIEnv * jenv, jclass, jstring jFileName, jint faceSize)
{
//解析文件目录
const char* jnamestr = jenv->GetStringUTFChars(jFileName, NULL);
string stdFileName(jnamestr);

​FaceRecognizer model = (FaceRecognizer)createEigenFaceRecognizer(100,10000.0);
try
{
model->load(stdFileName);
}

望朋友们出谋划策!十分感谢!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
android上jni跑图像分类程序崩溃了,报错libc : Fatal signal 11 ... gif图像通道数是1啊
android上jni跑图像分类程序崩溃了,报错libc : Fatal signal 11  ... 还好一个同事查出来有张gif图片冒充jpg,就是这个:  怎么知道是冒充的呢?  用文本文件查看工具打开这个图片,就会发现头几个子母是GIF89a 那是怎么崩溃的呢? 是因为在转灰度图时,通道数写死的,是4,因为一般jpg,png图片都可以表示为RGBA4通道, 所以改
NDK Fatal signal 11 (SIGSEGV) 错误定位
网上好多说的太复杂了。简单一点:http://stackoverflow.com/questions/5314036/how-to-use-addr2line-in-android
Android Studio signal11解决方法
转自http://blog.csdn.net/helldevil/article/details/6682211 有一句话叫做常在河边走,哪有不湿鞋。我们这些研究和开发Android的工程师正应了这句话,相必大家在调试的时候经常会遇到这么个东西吧 *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** Build fin
Android Fatal signal 11问题的调试方法
这两种方法都不是我发明了,都是网上一些高手公开出来的调试方法,无奈找不到出处的地方了,所以就在此总结一下,以方便android下的调试: 简要说明: android系统中调试Java非常容易,一般遇到错误都在logcat中打印出错时函数的调用关系, 而/system/bin/下的可执行程序或者C库中出错时只看到一些二进制信息,使用gdbserver调试环境搭建又比较复杂。
android ,java 异常: fatal signal 11 SIGSEGV
参考:http://stackoverflow.com/questions/18531835/java-android-fatal-signal-11-sigsegv 发生异常的原因:你尝试回收(或关闭)一个不可用或为NULL的内存资源引起的。 可能的实际情况: 1.关闭从没有打开过的HTTP连接(通过加判断来解决) 2.关闭从没有打开过的一个读取流(通过加
android native开发 错误信息定位:Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 4785 (XXX)
最近开始做android底层开发,经常遇到C/C++代码报错,logcat只给出一大串堆栈信息,而无法定位到具体代码段,后来网上搜寻发现可以使用addr2line工具根据出错地址映射到出错行,例如: 11-02 20:01:53.009: A/libc(4785): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 47
解决A/libc Fatal signal 11 (SIGSEGV)错误,这可能是目前最鲁棒的Android声音录制和播放封装库了
解决A/libc Fatal signal 11 (SIGSEGV)错误,这可能是目前最鲁棒的Android声音录制和播放封装库了http://blog.piasy.com/Robust-Android-Audio-encapsulation/
Fatal signal 11 (SIGSEGV), code 2调试方法
JNI中用C语言引起的bug:Fatal signal 11 (SIGSEGV), code 2对于习惯Java的程序员, 调试C程序是一件很头痛的事, 尤其是这种bug, 出现一次整个App立刻崩掉, 并且还不给你打印函数调用栈, 压根不知道哪一行出了问题. 如果google或者百度这个错误的描述, 答案往往是指针使用了一个不可用的位置, 或者是数组越界, 对程序问题定位也没有有价值的帮助.Bug
Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1) 错误 解决方案(android-ndk)
在android里做ndk编程的时候,碰到个随机性错误 错误信息如下: 05-06 15:59:44.411: A/libc(3347): Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1) 05-06 15:59:44.911: I/DEBUG(3344): *** *** *** *** *** *** *** *** *** *** ***
Android Fatal signal 11 (SIGSEGV) at 0x00000020 (code=1), thread 13602
jni相关报错 Fatal signal 11 (SIGSEGV) at 0x00000020 (code=1), thread 13602  本次原因为传入native method 的byte数组长度不够method内的赋值,导致数组越界。 改成byte[200]即可