将 C++ OpenCV 链接到 Android Studio 中的应用程序

Linking C++ OpenCV to an app in Android Studio

我正在使用 Android studio 将使用 OpenCV 的现有 C++ 代码集成到 Android 应用程序中。为此,我安装了包 OpenCV-android-sdk 并将其作为模块添加到 Android studio。我还创建了一个简单的 Kotlin 应用程序。

到目前为止,我已经成功地将我的 C++ 代码集成到项目中。通过 include_directories 语句将路径添加到 OpenCV include 后,代码编译成功。

我的下一步是 link 针对预编译的 OpenCV 库,以解决“未定义符号”错误。我不知道如何实现 this/where 来指定它。我曾尝试在网上查找资源,但没有两个资源说明相同,而且解决方案似乎过于复杂。我在丛林里迷路了。

我终于成功了。食谱来了(在 Windows 下验证)。

确保下载 OpenCV Android SDK 并将其复制到某处。

项目必须创建为 Native C++ 应用程序(Phone 和平板电脑)。 cpp 文件夹自动创建,其中包含 native-lib.cpp 源文件和 CMakeLists.txt.

将以下行添加到 CMakeLists 文件,在 project 行之后:

set(OpenCV_DIR $ENV{OPENCV_ANDROID}/sdk/native/jni)
find_package(OpenCV REQUIRED)

您必须定义环境变量 OPENCV_ANDROID 并使其指向您复制的文件夹 .../OpenCV-android-sdk。 (或者,您可以在 set 命令中对路径进行硬编码。)

然后在底部插入

target_link_libraries(app_name ${OpenCV_LIBS})

其中 OpenCV_LIBS 指向文件夹 .../OpenCV-android-sdk/sdk/native/libsapp_name 是您在创建应用程序时提供的名称。

最后,交叉手指并构建。