在过去,我在NDK更新后运行我的应用程序时遇到了问题,但是能够通过在app.gradle文件中的externalNativeBuild配置中添加参数’-DANDROID_STL = gnustl_static’来解决它们.
原始问题:(OpenCV – undefined reference to ‘cv::CascadeClassifier::detectMultiScale() after NDK update)
通过添加这行代码,我设法在所有NDK r17c版本的其余部分中避免了NDK的任何问题.
不幸的是,对于修订版r18,GNUSTL的支持已经与gabi和stlport一起被删除了.
请参阅NDK修订历史:https://developer.android.com/ndk/downloads/revision_history
删除现在已弃用的代码行会产生最初是上述问题的原因的错误.现在的问题是参数’-DANDROID_STL = gnustl_static’的最新等价物是什么?
编辑:使用’-DANDROID_STL = c _static’会导致旧错误
先感谢您.
解决方法 正如@Michael已经建议你可以用libc重建OpenCV.去做吧:
cd $OPENCV_SRCmkdir buildcd buildcmake -DCMAKE_TOolCHAIN_file=$ANDROID_DIR/ndk-bundle/build/cmake/androID.toolchain.cmake -DANDROID_ABI="arm64-v8a" -DANDROID_STL=c++_static -DCMAKE_BUILD_TYPE=Release -DANDROID_NATIVE_API_LEVEL=androID-24 ..make installcd install #the sdk will be here...
注意:
用“opencv-3.4.1”ndk18测试
由@shizhen编辑
在macOS上验证,应该添加..在cmake命令后使下面的错误消失.
CMake Error: The source directory “/opencv-3.4.1/build”does not appear to contain
CMakeLists.txt
.
更新如下:
cd $OPENCV_SRCmkdir buildcd buildcmake .. -DCMAKE_TOolCHAIN_file=$ANDROID_DIR/ndk-bundle/build/cmake/androID.toolchain.cmake -DANDROID_ABI="arm64-v8a" -DANDROID_STL=c++_static -DCMAKE_BUILD_TYPE=Release -DANDROID_NATIVE_API_LEVEL=androID-24 make installcd install #the sdk will be here...总结
以上是内存溢出为你收集整理的android – NDK – GNUSTL从NDK中删除后的问题(修订版r18)全部内容,希望文章能够帮你解决android – NDK – GNUSTL从NDK中删除后的问题(修订版r18)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)