OpenCV Android 上的静态初始化

2022-09-02 01:50:33

我正在尝试运行教程1 - 使用这个
添加具有静态初始化的OpenCV,我不希望安装单独的OpenCV管理器应用程序),但我得到了一个OpenCV"OpenCV error: Cannot load info library for OpenCV."

我做了以下事情:

  1. 添加了一个 libs 文件夹,其中包含 、 和文件夹(来自 OpenCV-2.4.2-android-sdk/sdk/native/libs/)armeabiarmeabi-v7ax86

  2. 在私有 Sample1View mView 的正下方添加了静态代码;{if (!OpenCVLoader.initDebug())}

  3. 删除了以下代码

如果 (!OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_2, this, mOpenCVCallBack))

问题似乎是什么?


答案 1

您应该添加代码:

mOpenCVCallBack.onManagerConnected(LoaderCallbackInterface.SUCCESS);

后:

if(!OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_2, this, mOpenCVCallBack)) 

如果删除:

if(!OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_2, this, mOpenCVCallBack))  

代码块,然后没有人调用。

希望它能帮助你。


答案 2

我有同样的问题,我已经通过在我的活动类的第一个添加以下代码解决了这个问题:

static {
    if (!OpenCVLoader.initDebug()) {
        // Handle initialization error
    }
}

我还添加了

mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);

行前

OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_3, this, mLoaderCallback); 

并注释了该行

OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_3, this, mLoaderCallback);

祝你好运。