我面临错误的Android项目有OpenCV&自定义的一些用于图像处理的cpp类实现。我包括
opencv-3-3-0-android-sdk
在里面
CMakeLists.txt
include_directories( ../opencv-3-3-0-android-sdk/sdk/native/jni/include/)
add_library( lib_opencv
SHARED
IMPORTED )
set_target_properties( lib_opencv
PROPERTIES IMPORTED_LOCATION
${PROJECT_SOURCE_DIR}/../opencv-3-3-0-android-sdk/sdk/native/libs/${ANDROID_ABI}/libopencv_java3.so )
当调用以下方法时,它抛出错误:
void saveMat(const cv::Mat& mat, std::string dst){
cv::imwrite(dst, mat);//throws error - undefined reference
}
运行无法引用imwrite的项目时出现以下错误。尽管
error: undefined reference to 'cv::imwrite(cv::String const&, cv::_InputArray const&, std::__ndk1::vector<int, std::__ndk1::allocator<int> > const&)'.
不过,在使用ctrl导航到该函数时,确实需要使用内部的正确函数
opencv2/imgcodecs.hpp
CV_EXPORTS_W bool imwrite( const String& filename, InputArray img,
const std::vector<int>& params = std::vector<int>());
在我看来这好像是连接错误。你知道为什么在运行应用程序时会抛出上述错误吗?