Android+JNI+OpenCV 构建错误

Build Error with Android+JNI+OpenCV

我是 Android OpenCV+NDK 开发的新手。我想在 Android 中找出图像中最大的轮廓,因为我正在尝试在 eclipse 中构建 JNI Integrated OpenCV Android 项目。我已经包括

${NDKROOT}/sources/cxx-stl/gnu-libstdc++/libs/armeabi-v7a/include
${NDKROOT}/sources/cxx-stl/gnu-libstdc++/include
${ProjDirPath}/../../sdk/native/jni/include
${NDKROOT}/platforms/android-9/arch-arm/usr/include
/usr/include/c++/4.6
/usr/include
${NDKROOT}/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.8/include

到项目 -> 属性 -> C/C++ 常规 -> 路径和符号 -> 在 GNU C++ 下包含

如果我尝试构建项目,我仍然遇到构建错误。

显示错误,因为 'class std::vector > >' 在 Point points = contours.toArray();

行没有名为 'toArray' 的成员

这是什么错误。我该如何解决这个问题。

我的控制台输出是:

* 项目 OpenCV-Square-Tracking-Android-JNI-master **** 配置的增量构建默认值 /home/dharaniinfotech/Downloads/android-ndk-r10d/ndk-build全部 Android NDK:警告:jni/Android.mk:native_sample:链接器标志中的非系统库:-lboost_system-gcc-mt-1_53 -lboost_regex-gcc-mt-1_53 -lboost_filesystem-gcc-mt-1_53 -lboost_date_time-gcc-mt-1_53
Android NDK:这可能会导致构建不正确。尝试使用 LOCAL_STATIC_LIBRARIES
Android NDK: 或 LOCAL_SHARED_LIBRARIES 而不是列出
的库依赖项 Android NDK:当前模块
[armeabi-v7a] 编译++拇指:native_sample <= jni_part.cpp jni/jni_part.cpp: 在函数中 'jint Java_org_opencv_samples_tutorial3_Sample3Native_FindSquares(JNIEnv*, jobject, jlong, jint)': jni/jni_part.cpp:77:30: 错误:'class std::vector > >' 没有名为 'toArray' 的成员 jni/jni_part.cpp:82:25: 错误:'points[i]' 中的 'operator[]' 不匹配 make: *
[obj/local/armeabi-v7a/objs-debug/native_sample/jni_part.o] 错误 1

请帮助我知道我错过了什么。

首先我错误地包含了

 ${NDKROOT}/sources/cxx-stl/gnu-libstdc++/libs/armeabi-v7a/include
 ${NDKROOT}/sources/cxx-stl/gnu-libstdc++/include

他们应该是这样的

${NDKROOT}/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi-v7a/include
${NDKROOT}/sources/cxx-stl/gnu-libstdc++/4.8/include

然后转到代码分析(右键单击项目 -> C/C++ 常规)和 select 使用项目设置并取消选中所有复选框。