运行OpenCV混合处理教程时出现UnsatisfiedLinkError

时间:2015-08-19 20:46:09

标签: android c++ opencv java-native-interface

我从OpenCV样本编译了教程2 - 混合处理演示。我对它进行了以下更改,以便在没有OpenCV包管理器的情况下工作。

添加了一个静态部分来初始化OpenCV:

static {
    if (!OpenCVLoader.initDebug()) {
        // Handle initialization error
        Log.i(TAG, "OpenCVLoader Failed");
    } else {
        Log.i(TAG, "OpenCVLoader Succeeded");
        System.loadLibrary("mixed_process");
    }
}

删除了mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);

@Override
public void onResume()
{
    super.onResume();
}

运行应用时出现此错误:

错误:

08-19 13:21:35.455: E/AndroidRuntime(2388): java.lang.UnsatisfiedLinkError: No implementation found for long org.opencv.core.Mat.n_Mat(int, int, int) (tried Java_org_opencv_core_Mat_n_1Mat and Java_org_opencv_core_Mat_n_1Mat__III)

如何解决此错误?

1 个答案:

答案 0 :(得分:1)

我想出了自己,问题是我没有在我的应用程序中加载libopencv_java3.so。我修好后工作正常。

static {
    if (!OpenCVLoader.initDebug()) {
        // Handle initialization error
        Log.i(TAG, "OpenCVLoader Failed");
    } else {
        Log.i(TAG, "OpenCVLoader Succeeded");
        System.loadLibrary("CameraVision");
        System.loadLibrary("opencv_java3");
    }
}