android静态初始化opencv 3.0无法加载库“opencv_java3”

时间:2015-11-26 16:52:32

标签: java android opencv android-ndk

使用header { height:100px; /*You can specify your size*/ } 尝试静态初始化openCV,使其包含在应用内置中,用户无需从Android Playstore下载openCV Manager。

使用openCV v3(http://opencv.org/downloads.html

在刚刚尝试在OpenCV-android-sdk \ samples \ face-detection中为其中一个样本添加静态初始化的阶段。

我已按照示例(http://docs.opencv.org/2.4/doc/tutorials/introduction/android_binary_package/dev_with_OCV_on_Android.html

看了很多例子,但到目前为止还没有解决方案让它运转起来。非常希望有人能够提供帮助。

我确实认为可能是由于libopencv_java3.so不在Android ADT文件夹中当我从libs/armeabi-v7a/复制并粘贴它时它会消失。我相信这可能与ndk的设置方式有关。当然,问题可能完全不同。

LogCat给出了这个:

OpenCV-android-sdk\sdk\native\libs\armeabi-v7a

4 个答案:

答案 0 :(得分:15)

让某人遇到此问题并使用AndroidStudio。您可以通过简单地复制文件夹OpenCV-android-sdk \ sdk \ native \ libs

来修复它

进入您的OpenCvProject / openCVLibrary310 / source / main并将其重命名为jniLibs。所以最终的结构看起来像这样: OpenCvProject / openCVLibrary310 /源极/主/ jniLibs / enter image description here

如果您已经从AndroidStudio中运行了项目,请务必先从设备中删除它。否则,AndroidStudio可能无法重新部署它,因此可能无法复制libs。

如果将libs复制到实际项目而不是openCVLibrary文件夹中,它也可能有用,但我没有尝试过。

答案 1 :(得分:1)

确保您可以选择安装设置为" ON"在包括Opencv.mk之前:

OPENCV_INSTALL_MODULES:=on
include ${OPENCV_ANDROID_SDK}/${ANDROID_SDK_JNI}/OpenCV.mk

我已经在makefile中设置了变量

请参阅: http://docs.opencv.org/2.4/doc/tutorials/introduction/android_binary_package/dev_with_OCV_on_Android.html

答案 2 :(得分:1)

我最近遇到这个问题! 因为我没有将其放入文件夹“ app / src / main / jniLibs”,而是放入文件夹“ app / src / main / cpp / libs”(自定义)

文件夹路径:

folder path

运行时错误:

runtime error

APK内容:

apk content

我们可以看到libopencv_java3.so未打包到apk文件中。

我将“ so”文件夹路径修改为“ app / src / main / jniLibs”,并修改了“ CMakeLists.txt”。

使用jniLib:

use jniLibs

并构建项目。

我们可以看到。

apk content

我们可以找到libopencv_java3.so

并且应用正常运行。

所以我认为我们应该将所有“ so”文件放入jniLibs文件夹。

如果要使用其他文件夹。您应该在“ build.gradle”中进行配置

答案 3 :(得分:0)

我为这个问题奋斗了好几个小时,当时我尝试了一些只是为了娱乐和VOILÁ的东西!我在System.loadLibrary("whateverYourLibraryWasCalled");上遇到了问题所以我在之前添加了加载的OpenCV:

static {
    System.loadLibrary("opencv_java3");
    System.loadLibrary("MyOpencvLibs");
}

一切都运转正常。