本帖最后由 u012365618 于 2014-04-02 14:51:16 编辑

解决方案 »

  1.   

    Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1), thread 1405 (.novonity.uchat)应该是JNI代码的问题,0xdeadbaad 这个地址一般用于标识一个被free掉的指针
    可以编译一个debug的so库,然后等崩溃后看一下调用堆栈
      

  2.   

    一般是代码写的有问题,比如说unsigned char *buffer = malloc(1024);
    ...
    free(buffer);
    buffer = 0xdeadbaad;// 为了表示这个指针已经被free了,通常会把它设置成一个特殊的值,比如 0xdeadbaad
    strcpy(buffer, "Fatal :(");// 执行这句就会导致Fatal错误
      

  3.   

    楼主解决没,我也遇到这操蛋的问题了,光在百度地图相关的类上报这个Fatal 11 code 1
      

  4.   


    我也是经常遇到, 尤其是在安卓4上面, 
    看来只能等百度地图SDK更新了(3.0.0没试过, 反正2.3.x到2.4.2都不行)... 
    也可能是定位SDK 3.x的问题
      

  5.   

    我在4.3上用OpenCV也遇到了类似问题:
    A/libc(21897): Fatal signal 11 (SIGSEGV) at 0x0000010a (code=1), thread 22103 (Thread-1068)
    @youngc527 ,兄台帮忙看下这个应该是什么出啦问题?
    我在jni中创建一个对象,把指针保存起来传回java下(long型),再连同要处理的图片传回jni下,通过该指针去构造一个训练模型,再预测,然后就挂了。
      

  6.   

    我训练load的这个xml文件大小为3031k。我检验过,第二次传回的指针和我保存在jni下的全局指针是相同的。
    JNIEXPORT jint JNICALL Java_com_example_affectiverecognizer_AffRecog_Predict(JNIEnv *jenv, jclass, jlong thiz, jintArray jtestImage, jint jwidth, jint jheight){    jint result = 0;
        if (GlobalModelPointer != (FaceRecognizer*)thiz){
            CV_Error(CV_StsBadArg, "error in transport facerognizer pointer");
        }
    Ptr<FaceRecognizer> model((FaceRecognizer*)thiz);
    //    //try reload file
    //    Ptr<FaceRecognizer> newModel = createFisherFaceRecognizer();
    //    newModel->load("/data/data/com.example.affectiverecognizer/app_fishermodel/fisher_model_xm.xml");    jint *ptestImage;
        ptestImage = jenv->GetIntArrayElements(jtestImage, false);
        if(ptestImage == NULL){
         return -1;
        }
        Mat testImage(jheight, jwidth, CV_8UC1, (unsigned char*)ptestImage);
    result = model->predict(testImage);
    model.release();
    return result;
    }