关于 android 中使用sift的问题

如图,我用jni的形式使用别人编译好的带
opencv_contrib opencv ,
在进行特征值提取的时候 报错

06-25 20:41:24.159 641-641/com.example.haoge.sift_test2 E/cv::error(): OpenCV Error: The function/feature is not implemented () in virtual void cv::Feature2D::detectAndCompute(cv::InputArray, cv::InputArray, std::vectorcv::KeyPoint&, cv::OutputArray, bool), file ../../modules/features2d/src/feature2d.cpp, line 154
06-25 20:41:24.161 641-641/com.example.haoge.sift_test2 A/libc: Fatal signal 6 (SIGABRT), code -6 in tid 641 (aoge.sift_test2)

  Mat src(h, w, CV_8UC4, (unsigned char *) srcBuf);
    imwrite(path,src);
    SIFT sift;
    Mat feature_pic1;vector<KeyPoint>keyPoints1;
    SiftFeatureDetector detector;//( minHessian );

    //2--使用SIFT算子检测特征点
    vector<KeyPoint> keypoints;
    detector.detect( src, keypoints );
    Mat keypointImg;
    drawKeypoints( src, keypoints, keypointImg, Scalar::all(-1), DrawMatchesFlags::DEFAULT );
    imwrite(path, keypointImg);
    return true;

代码运行到detect这里就闪退,请问这是什么原因呢 是因为没有编译好的原因么

图片说明

是我少添加了什么东西么
这是我的目录结构 图片说明

我应该把这底下的这个也拷贝进去?图片说明

知道了1, 这个是opencv2的用法0, opencv3的用法 不一样