2017-03-27 121 views
0

真的在这里苦苦挣扎。基本上,我有一大堆使用opencv并能正常工作的iOS项目的C++文件。从Android的原生C++文件调用本机opencv

现在,我试图移植到Android。所以我需要做的是将我已经加入Android项目的现有C++文件作为共享库,并且仍然可以调用本地opencv C++方法。这可能吗?

我知道java实现只是一堆关于C++代码的包装,但我似乎无法找到一种方法从项目中的其他C++文件调用本地C++代码。任何帮助表示赞赏。由于

史蒂夫

回答

0

您是否尝试过使用Android NDK (Native Development Kit)?它允许你在Android中使用c/C++代码。但是你不能简单地将库导入你的应用程序,你需要使用NDK(.SO文件)来构建它,它会生成脚本作为代码的链接器。

0

如果我正确地理解了你,你需要在本地层(而不是通过Java API)接口到opencv。您应该能够抓取目标平台的.so库以及必要的头文件,并使用NDK构建它。

如果您的应用程序项目没有JNI的一部分,只需复制对应的OpenCV的本地库从/ SDK /本地/库/项目目录到文件夹库/。

source

有很多方法来建立一个NDK版本。 CMake的更新版本(> = 3.7.2)使交叉编译相对来说不会太痛苦。见this page