【发布时间】:2019-07-24 19:43:08
【问题描述】:
我需要哪些步骤来整合,
转成纯C++(No Java Code) Android NDK项目,如Android NDK谷歌教程:
official documentation 用于 android 集成指的是更旧的版本:OpenCV-2.4 和文件夹结构不再相同。
我在 Linux 上使用 Android Studio。
高度赞赏所有帮助。
【问题讨论】:
标签: android c++ opencv android-ndk
我需要哪些步骤来整合,
转成纯C++(No Java Code) Android NDK项目,如Android NDK谷歌教程:
official documentation 用于 android 集成指的是更旧的版本:OpenCV-2.4 和文件夹结构不再相同。
我在 Linux 上使用 Android Studio。
高度赞赏所有帮助。
【问题讨论】:
标签: android c++ opencv android-ndk
下载 opencv Android 包(例如opencv-4.0.1-android-sdk)并解压到~/android。
在CMakeLists.txt的底部,添加
set( OpenCV_DIR "~/android/OpenCV-android-sdk/sdk/native/jni" )
find_package( OpenCV REQUIRED )
target_link_libraries(game opencv_java)
包将定义以下变量:
OpenCV_LIBS : OpenCV 模块的所有导入目标列表。
OpenCV_INCLUDE_DIRS : OpenCV 包含目录的列表。使用 CMake >= 2.8.11,您甚至不需要编写
include_directories(${OpenCV_INCLUDE_DIRS})
这个版本的预建 OpenCV SDK 也定义了
OpenCV_VERSION :此 OpenCV 构建的版本:“4.0.1”
OpenCV_ANDROID_NATIVE_API_LEVEL : Android API 的最低要求级别:“16”。
这意味着您的应用清单需要 minSdkVersion 16 或更高(原始示例需要修复 here)。
您可以使用静态库(opencv_imgcodecs、opencv_stitching、等)代替包含所有 OpenCV 功能的共享库。这些静态库采用默认的 ANDROID_STL=c++_static。
为获得最佳效果,请使用 NDK r.18 或 r.19。
更新:NDK r.21 适用于 opencv 4.3.0。
【讨论】:
<opencv>/sdk/native/libs 添加到 jniLIbs.src
如果您想创建共享对象(.so) 并在不使用 Android Studio 的情况下进行编译,这里是我的blog。当您想要创建本地第三方库时,这通常很有用。
【讨论】: