前言:折腾了一下午 踩了许多的坑,终于将opencv的so库配置到as上,记录一下,免得再犯
开发配置环境:
ndk :r21_x86_x64
opencv sdk :v3.4.1
android studio 3.5
遇到问题:
error: undefined reference to 'cv::CascadeClassifier::detectMultiScale(cv::_InputArray const&, std::__ndk1::vector<cv::Rect_<int>, std::__ndk1::allocator<cv::Rect_<int> > >&, double, int, int, cv::Size_<int>, cv::Size_<int>)'

原因:高版本NDK适配opencv 有兼容性问题
解决方案:降低NDK版本 ,并在build.gradle添加标准 gnustl_static(ndk-r16版本支持) ,而不是c++_static(ndk新版本)

externalNativeBuild {
cmake {
abiFilters "armeabi-v7a"
cppFlags "-std=c++11 -frtti -fexceptions"
arguments '-DANDROID_STL=gnustl_static'
}
}
网友评论