Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在Eclipse中使用JNI构建OpenCV应用程序_Android_C++_Opencv_Android Ndk - Fatal编程技术网

Android 在Eclipse中使用JNI构建OpenCV应用程序

Android 在Eclipse中使用JNI构建OpenCV应用程序,android,c++,opencv,android-ndk,Android,C++,Opencv,Android Ndk,在Eclipse中使用OpenCV和JNI部分构建android应用程序时,我遇到了一个问题 问题是ndk build无法正常为项目运行,但Eclipse显示错误(通常与代码无关) 例如,我正在构建OpenCV4Android示例之一: boris@boris-ubuntu:~/src/OpenCV-2.4.3-android-sdk/samples/tutorial-3-native$ ndk-build Install : libnative_camera_r2.2.0.so

在Eclipse中使用OpenCV和JNI部分构建android应用程序时,我遇到了一个问题

问题是ndk build无法正常为项目运行,但Eclipse显示错误(通常与代码无关)

例如,我正在构建OpenCV4Android示例之一:

boris@boris-ubuntu:~/src/OpenCV-2.4.3-android-sdk/samples/tutorial-3-native$ ndk-build 
Install        : libnative_camera_r2.2.0.so => libs/armeabi-v7a/libnative_camera_r2.2.0.so
Install        : libnative_camera_r2.3.3.so => libs/armeabi-v7a/libnative_camera_r2.3.3.so
Install        : libnative_camera_r3.0.1.so => libs/armeabi-v7a/libnative_camera_r3.0.1.so
Install        : libnative_camera_r4.0.0.so => libs/armeabi-v7a/libnative_camera_r4.0.0.so
Install        : libnative_camera_r4.0.3.so => libs/armeabi-v7a/libnative_camera_r4.0.3.so
Install        : libnative_camera_r4.1.1.so => libs/armeabi-v7a/libnative_camera_r4.1.1.so
Install        : libnative_sample.so => libs/armeabi-v7a/libnative_sample.so
Install        : libopencv_java.so => libs/armeabi-v7a/libopencv_java.so
它正常运行,但Eclipse显示错误:

'size_t' is ambiguous '
Candidates are:
Field 'pt' could not be resolved
Field 'pt' could not be resolved
Field 'x' could not be resolved
Field 'y' could not be resolved
Invalid arguments '
Candidates are:
void detect(const cv::Mat &, ? &, const cv::Mat &)
void detect(const ? &, ? &, const ? &)
The type 'cv::FastFeatureDetector' must implement the inherited pure virtual method 'cv::FeatureDetector::detectImpl'
和其他项目中的类似错误。此外,EclipseIntelliSense(或者它的正确名称:)不在.cpp文件上工作

我试图清理项目,删除obj和lib文件夹,但没有效果

我的系统是ubuntu 12.04,OpenCV版本是2.4.3


谢谢你的帮助

你在ubuntu 12.04上也遇到了同样的问题,OpenCV版本是2.4.3。在同一个示例中,我使用的是EclipseAndroid包

以下是我所做的:

使用google repo更新NDK插件,该插件已经安装,但可以更新

然后我将size_t改为int,并添加了一个temp变量,而不是像示例中那样直接执行。代码如下:

Mat* pMatGr=(Mat*)addrGray;
Mat* pMatRgb=(Mat*)addrRgba;
vector<KeyPoint> v;
FastFeatureDetector detector(50);
detector.detect(*pMatGr, v);
for( int i = 0; i < v.size(); i++ )
{
     KeyPoint tK = v[i];
    circle(*pMatRgb, Point(tK.pt.x, tK.pt.y ), 10, Scalar(255,0,0,255));
}
Mat*pMatGr=(Mat*)addrGray;
Mat*pMatRgb=(Mat*)addrRgba;
向量v;
快速特征检测器(50);
检测器。检测(*pMatGr,v);
对于(int i=0;i

这真的是一个奇怪的bug,我猜这与eclipse调试机制不能正常工作有关

是一只非常奇怪的虫子。我在Ubuntu 12.04和OpenCV 2.4.5上

我在“OpenCV教程2-混合处理”中遇到了同样的错误


在不重新安装Eclipse或NDK的情况下成功修复了它。只是删除了示例项目,然后再次导入。现在工作正常。

您安装了NDK插件吗?:是的,当然。(放大评论:)谢谢,我稍后会尝试一下,并告诉大家结果。我已经更新了NDK并重新安装了eclipse,一切都很好。奇怪的错误:)无论如何,谢谢你的帮助,我会记下你的答案。卸载NDK并重新安装是我消除“类型'cv::FastFeatureDetector'必须实现继承的…”错误的唯一方法。但是,只要打开文件jni/jni_part.cpp,错误就会再次出现。这对于OpenCV教程3和OpenCV教程4都是正确的。所以这里的eclipse看起来确实有些问题。没错,同意用户1792609,eclipse肯定出了问题,因为当我重新制作opencv工作空间时——删除元数据并再次导入opencv项目——这些错误消失了。谢谢各位,