有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java openCV解决Android集成中的问题

我需要在我的应用程序中集成OpenCV 2.4。首先,我发现运行基于OpenCV的应用程序需要OpenCV管理器。但是,在谷歌搜索之后,我找到了另一种使用静态初始化herehere的方法。我试过了,但没用:

psudo代码:

    public class MainActivity extends Activity {

static {
    if (!OpenCVLoader.initDebug()) {
        Log.d(TAG,"init failed")
    }
}

        private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {
            @Override
            public void onManagerConnected(int status) {
                switch (status) {
                case LoaderCallbackInterface.SUCCESS: {
                    Log.i(TAG, "OpenCV loaded successfully");
                }
                    break;
                default: {
                    super.onManagerConnected(status);
                }
                    break;
                }
            }
        };

        @Override
        public void onResume() {
            super.onResume();   
            OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_4, this,
                    mLoaderCallback);
        }
    }

我试过了,但没用。它显示了用于安装openCV管理器的相同弹出窗口

我还试图删除onResume中的initAsync()mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);但当我使用这个时,应用程序崩溃了

谁能给我指路吗?请不要标记为重复;有成千上万的问题没有答案


共 (2) 个答案

  1. # 1 楼答案

    我自己解决了。您不需要在JNI库之后编写扩展

    我写这篇文章的方式不正确:

    System.loadLibrary("lib1.so");
    System.loadLibrary("lib2.so");
    

    毕竟,我找到了正确的方法:

    System.loadLibrary("lib1");
    System.loadLibrary("lib2");
    

    如前所述,不需要写.so扩展名