我有一个
Android项目,它有本机代码.在这个原生部分,我使用OpenCV.
当我使用OpenCV 2.3.1时,一切都编译好了,但是当我试图切换到版本2.4.1时,我遇到了问题:
当我使用OpenCV 2.3.1时,一切都编译好了,但是当我试图切换到版本2.4.1时,我遇到了问题:
它编译没有任何错误,但是当我启动我的应用程序时,由于UnsatisfiedLinkError,它无法加载我的库.
Cannot load library: link_image[1936]: 37 Could not load needed library 'libopencv_java.so' for 'mylibrary.so' (load_library[1091]: Library 'libopencv_java.so' not found)
我看到Open CV尝试加载libopencv_java.so,但我不需要它,我不在java代码中使用OpenCV.该库的大小> 5M.
如何编译而不将此lib添加到项目中?
解决方法
除了C OpenCV接口的JNI包装器之外,libopencv_java.so还包含所有OpenCV本机代码.
当您使用OpenCV 2.4 for Android构建JNI库时,您可以使用libopencv_java.so(默认选项)动态链接,并通过显式添加此选项将其包含在您的APK或静态链接中:
当您使用OpenCV 2.4 for Android构建JNI库时,您可以使用libopencv_java.so(默认选项)动态链接,并通过显式添加此选项将其包含在您的APK或静态链接中:
include $(CLEAR_VARS) OPENCV_LIB_TYPE:=STATIC include <your path>/OpenCV.mk