Android使用OpenCV4.2环境搭建
16lz
2021-01-26
Android使用OpenCV4.2环境搭建
- 下载sdk
- 创建新的Android项目
- 如果在已创建的Android项目中需要接入时(在创建项目时"未勾选"includeC++suport)
- 项目配置
- 下面开始画重点
- 配置过程中遇到的问题
下载sdk
下载地址:https://opencv.org/releases/.
下载解压后目录:
创建新的Android项目
使用AndroidStudio新建项目选择c++支持,这是基础,新版本(AndroidStudio3.5.3)的as好像没有了这个选项。
如果在已创建的Android项目中需要接入时(在创建项目时"未勾选"includeC++suport)
1.需要在已支持C++的项目(或新建项目支持C++)中,将CMakeLists.txt文件复制一份到主工程app文件下
2.在main文件下创建cpp文件夹
3.在app的build.gradle中添加两处配置
android { ... defaultConfig { ... //配置1 externalNativeBuild { cmake { cppFlags "-std=c++11" } } } buildTypes { ... } //配置2 externalNativeBuild { cmake { path "CMakeLists.txt" } } ...}
项目配置
将解压后的sdk以Module方式导入项目并自行命名
修改导入Module下的build.gradle,并sync
将apply plugin: ‘com.android.application’
改为apply plugin: ‘com.android.library’
在app项目中将导入的Moduel以Modele Dependency方式引入
下面开始画重点
- 将so包引入项目中
在主工程的main文件下创建jniLibs(注意大小写),将解压后的sdk/native/libs下的文件复制一份放到创建的jniLibs下面。
- 在activity中进行初始化
private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) { @Override public void onManagerConnected(int status) { switch (status) { case LoaderCallbackInterface.SUCCESS: { Log.i("flag", "OpenCV loaded successfully"); // todo } break; default: { super.onManagerConnected(status); } break; } } }; @Override protected void onResume() { super.onResume(); if (!OpenCVLoader.initDebug()) { Log.e("flag", "Internal OpenCV library not found. Using OpenCV Manager for initialization"); OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION, this, mLoaderCallback); } else { Log.e("flag", "OpenCV library found inside package. Using it!"); mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS); } }
或者简单一点可以直接这样:
@Override protected void onResume() { super.onResume(); new OpenCVNativeLoader().init(); }
- 配置app的build.gradle
在android/defaultConfig/externalNativeBuild/cmake下增加属性
arguments “-DANDROID_STL=c++_shared”
sync一下就可以愉快的进行开发了。
配置过程中遇到的问题
1:弹框提示需要opencv manager 支持,是否下载!
2:闪退,报错so包找不到!
检查:
配置是否支持c++(基础)
是否配置属性:arguments “-DANDROID_STL=c++_shared”
jniLibs下是否导入so文件
持续学习中~~~
更多相关文章
- 我的第一个开源android app[哇靠百科]
- 在Mac OS X 下配置Android(安卓)NDK(配置环境变量)
- 关于 Eclipse 导出 Android项目 JavaDoc 详细过程
- Android(安卓)Studio设置,减少对C盘空间的占用
- Android数据库升级、降级、创建(onCreate() onUpgrade() onDowng
- Android(安卓)adb 环境变量配置的坑 adb 不是内部或外部命令
- Android(安卓)Design in Action —— 编与集
- mac 下配置maven环境( 包括android工程使用maven)
- Android(安卓)Studio 3.0下Jni开发环境配置