将opencv4集成到android studio3.0平台

感觉吧opencv这东西非常老了,在集成到android studio平台的过程遇到很多问题,可能是版本的问题,不兼容之类的,更新换代很快,遇到问题的时候看那些老博客或者是stackoverflow都是解决不了的,自己硬着头皮去研究每一步的问题....趁头发多的时候(呸 年轻的时候 ,多写写自己的经历,希望能帮助到后面的人。

1、官网下载opencv的安卓包(https://opencv.org/releases.html)

将opencv4集成到android studio3.0平台_第1张图片

2、下载之后解压

将opencv4集成到android studio3.0平台_第2张图片

3、在android studio新建一个安卓项目,导入模块,选择的路径为刚刚解压的文件夹下的java文件夹。

将opencv4集成到android studio3.0平台_第3张图片

将opencv4集成到android studio3.0平台_第4张图片

4、将Module加入到项目依赖中。打开project structure,你会发现Module下面是带有两个模块的,如果你只有一个app模块,那就证明没导入成功,那就去看步骤5。有两个模块的话,选择app这个模块,选择dependencies,点击右边加号,选择引入模块依赖。然后就是点击ok,完成。

将opencv4集成到android studio3.0平台_第5张图片

将opencv4集成到android studio3.0平台_第6张图片

将opencv4集成到android studio3.0平台_第7张图片

5、如果在project structure看不到新导入的Module的话,去setting.gradle文件自己加上这个模块。然后回来就会有了。重复步骤4的操作就行。

6、修改新导入的Opencv模块的build.gradle文件的三个参数,使得与app模块的build.gradle文件这三个参数保持一致。

这三个参数是:

compileSdkVersion

minSdkVersion

targetSdkVersion 

如果有buildtoolsversion也要保持一致,在3.0.0以后的build tools已经不需要这个参数了。原文://buildToolsVersion "x.y.z" // not needed since com.android.tools.build:gradle:3.0.0

7、在app/src/main下新建文件夹jniLibs,将我们下载的OpenCV-android-sdk的sdk/native/libs下的所有文件拷贝到jniLibs下。我们这样子做是直接在apk安装后能直接运行,不然的话要安装一些指定的opencv的apk才能运行项目的apk,这显然是不友好的。

将opencv4集成到android studio3.0平台_第8张图片

8、在运行过程中,我出现了导入的opencv module R.styleable找不到的问题。然后无论是clean,rebuild等等都解决不了。自己查看了R文件,发现R文件存在,但是居然是空白的。我觉得人家给的Module不会是res那些有问题,检查了attrs.xml资源文件没有问题,讲道理是有styleable的。因此,应该是gradle文件有问题,不能正常将资源索引到R文件,R文件没有记录。

解决:将opencv module的build.gradle文件下的res.srcDirs后面的资源路径改成模块里面的res资源路径。

sourceSets {
    main {
        jniLibs.srcDirs = ['../../jni']
        java.srcDirs = ['src']  // TODO Use original files instead of copied into build directory
        aidl.srcDirs = ['src']
        res.srcDirs = ['res']
        manifest.srcFile 'AndroidManifest.xml'
    }
}

你可能感兴趣的:(android)