我正在开发(使用Android Studio)使用OpenCV 3.1.0的Android应用。我正在使用异步 OpenCV初始化。我的问题是:我是否需要将OpenCV本机库(OpenCV-android-sdk/sdk/native/libs
)复制到我的jniLibs目录(app/src/main/jniLibs
)?
在我阅读过的有关如何在Android Studio中设置OpenCV的所有教程中,他们都会复制这些库。但是,由于我使用OpenCV管理器访问外部安装在设备中的OpenCV库(而不是静态初始化),我认为我不需要复制库。我是对的吗?
感谢您的帮助。
答案 0 :(得分:3)
使用OpenCV for Android一段时间后,我可以回答一下我的问题:
如果您使用OpenCV Manager进行异步初始化,则不需要将本机OpenCV lib复制到您的项目中。因为您正在使用OpenCV Manager:
OpenCV Manager是一项旨在管理OpenCV库的Android服务 最终用户设备上的二进制文件。它允许共享OpenCV动态 同一设备上的应用程序之间的库。
更多信息:OpenCV Manager docs。
根据这种方法,所有OpenCV二进制文件都包含到您的应用程序包中(生产代码不推荐使用此方法)。
没有JNI部分的应用
您必须将sdk/native/libs
的内容复制到项目目录中的文件夹app/src/main/jniLibs
。
应用JNI部分:
您需要修改Android.mk
文件。之后,在JNI构建期间,OpenCV库将被复制到您的应用程序jniLibs
文件夹。
答案 1 :(得分:0)
是的,如果你使用sdk/native/libs
,你将需要将jniLibs
for OpenCV的内容复制到apps NDK
目录中,基于java的类只是OpenCV的一个`包装器本机库使您更容易使用OpenCV。
请参阅以下链接查看更多官方文档:http://docs.opencv.org/2.4/doc/tutorials/introduction/android_binary_package/O4A_SDK.html