java - android静态初始化opencv 3.0无法加载库 "opencv_java3"

标签 java android opencv android-ndk

我正在使用 Android ADT 尝试静态初始化 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 不在文件夹 libs/armeabi-v7a/ 当我从 OpenCV-android-sdk\sdk\native 复制并粘贴它时\libs\armeabi-v7a 它消失了。我相信这可能与 ndk 的设置方式有关。当然,问题可能完全不同。

LogCat 给出了这个:

11-26 16:36:33.647: D/OpenCV/StaticHelper(13993): Trying to load library opencv_java3 
11-26 16:36:33.647: D/OpenCV/StaticHelper(13993): Cannot load library "opencv_java3" 
11-26 16:36:33.647: W/System.err(13993): java.lang.UnsatisfiedLinkError: Couldn't load opencv_java3 from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/org.opencv.samples.facedetect-1.apk"],nativeLibraryDirectories=[/data/app-lib/org.opencv.samples.facedetect-1, /vendor/lib, /system/lib, /vendor/lib]]]: findLibrary returned null 
11-26 16:36:33.767: D/OpenCV/StaticHelper(13993): Trying to load library opencv_java3 
11-26 16:36:33.767: D/OpenCV/StaticHelper(13993): Cannot load library "opencv_java3" 
11-26 16:36:33.767: W/System.err(13993): java.lang.UnsatisfiedLinkError: Couldn't load opencv_java3 from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/org.opencv.samples.facedetect-1.apk"],nativeLibraryDirectories=[/data/app-lib/org.opencv.samples.facedetect-1, /vendor/lib, /system/lib, /vendor/lib]]]: findLibrary returned null

最佳答案

以防有人遇到这个问题并使用 AndroidStudio。您可以通过简单地复制文件夹 OpenCV-android-sdk\sdk\native\libs 来修复它

进入您的 OpenCvProject/openCVLibrary310/source/main 并将其重命名为 jniLibs。所以最终的结构是这样的: OpenCvProject/openCVLibrary310/source/main/jniLibs/ enter image description here

如果您已经在 AndroidStudio 之外运行您的项目,请确保先从设备中删除它。否则 AndroidStudio 可能不会重新部署它,因此可能不会复制库。

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

关于java - android静态初始化opencv 3.0无法加载库 "opencv_java3",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33943699/

相关文章:

python - 如何将使用 Keras 模型训练的 Tensorflow 2.* 转换为 .onnx 格式?

java - 在大 Canvas 上滚动

android - 按钮上的单击、按下和释放事件

opencv - 如何在 Xamarin 中使用 openCV?

java - Jsoup选择不同的Div类型并依次处理

android - 尝试从 Google 相册中选择视频时出现空值

javascript - 构建 opencv.js 时如何包含 cv.imread()?

java - 使用 bluecove 通过蓝牙实现 PC 到 PC

java - 从非静态 Java 获取数据到静态

java - 如何选择Antlr4运行时的启动规则?