Android+openCV 的坑

之前一直用IntelliJ IDEA 导入 opencv_android_sdk 的 java 包,在最后一步finish时,始终出错.

后来重新安装Android Studio 重复以上步骤,能顺利导入包 openCVLibrary320 (原因未知).

导入包后注意修改 sdk的 build.gradle 中的

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.2"

    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 26
    }
    ...
}

 与 app build.gradle 中的一致.

 

 

按照网上很多教程:

接着在 app/src/main 目录下 创建一个jniLibs 目录,然后把sdk/native/libs 下所有文件 拷贝到jniLibs下,编译,运行。

这一步执行后运行程序会报错,指向的目标大概都是 需要loadLibrary.

OK,我就加入了:

    // private static String strLibraryName = Core.NATIVE_LIBRARY_NAME;
    private static String strLibraryName = "opencv_java3"; // 不需要添加前缀 libopencv_java3

    static {
        try {
            Log.e("loadLibrary", strLibraryName);
            System.loadLibrary(strLibraryName);
        } catch (UnsatisfiedLinkError e) {
            Log.e("loadLibrary", "Native code library failed to load.\n" + e);
        } catch (Exception e) {
            Log.e("loadLibrary", "Exception: " + e);
        }
    }

还是报错哦,找不到 libopencv_java3.so ,搞笑了,我就怀疑这个 libopencv_java3 路径有问题或者根本没有关联到项目,因为教程中直接让你把这个文件夹内容拷贝过来.

查资料 无果.

后来,把 jniLibs 目录放到 src/main/ 目录下 ,与Java 目录同一级. 然后在app 的 build.gradle 中添加:

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.2"
    defaultConfig {
        applicationId "com.***.opencvdemo2"
        minSdkVersion 15
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        sourceSets {
            main {
                jniLibs.srcDirs = ['src/main/jniLibs']
            }
        }
    }
    ...
}

这样编译就能顺利通过.

 

最后:

其实根本不需要  jniLibs  这个目录.我本来导入了opencv 的java 包.

所以,删掉删掉.根本不需要拷贝什么文件.导入包就可以了.后续的配置什么的都删掉删掉.

 

下一篇,将会记录,Android + openCV 简单的静态图片人脸检测.

 

转载于:https://www.cnblogs.com/haoxr/p/7614924.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值