从 Android 中的原生 c++ 文件调用本机 opencv



在这里真的很挣扎。 基本上,我有一大堆来自iOS项目的c ++文件,它们使用opencv并且工作正常。

现在,我正在尝试移植到Android。 所以我需要做的是,将我现有的 c++ 文件作为共享库拉入 Android 项目中,并且仍然能够调用本机 opencv c++ 方法。 这可能吗?

我知道 java 实现只是一堆 c++ 代码的包装器,但我似乎找不到一种方法来从项目中的其他 c++ 文件中调用本机 c++ 代码。 任何帮助,不胜感激。 谢谢

史蒂夫

您是否尝试过使用 Android NDK(原生开发套件(?它允许您在Android中使用c/c ++代码。但是,您不能简单地将库导入到您的应用程序中,您需要使用 NDK (.SO 文件(,它将生成充当代码链接器的脚本。

如果我理解正确的话,你需要在本地层与opencv接口(而不是通过Java API(。 您应该能够获取目标平台的 .so 库以及必要的标头,并使用 NDK 对其进行构建。

如果您的应用程序项目没有 JNI 部件,只需将相应的 OpenCV 本机库从/sdk/native/libs/复制到项目目录到文件夹 libs/即可。

您可以通过

多种方式设置 NDK 内部版本。CMake 的较新版本 (>=3.7.2( 使得交叉编译相对轻松。请参阅此页面

最新更新