Android Studio配置OpenCV库以及问题解决。

目录

1、下载opencv Android版本

2、手动从本地导入opencv的sdk包

3、更改build的相关版本

4、手动添加依赖

5、错误

1、命令空间错误。Namespace not specified

2、找不到 BuildConfig

3、程序包 org.opencv.engine不存在

6、测试

总结步骤

1.导入模块

2.注释konlin

3. 添加依赖

4.OpenCV的Build文件需要修改参数的版本 ,主要是3个,opencv和app中对应

5.在OpenCV-Build文件中添加namespace

6. 在OpenCV-Build文件中添加配置BuildConfig

5.拷贝文件

6.测试 


AS版本 2024.1.1

安装参考:http://t.csdnimg.cn/fmxRq

1、下载opencv Android版本

网址:https://opencv.org/releases/

后解压。解压路径最好不要有中文。

2、手动从本地导入opencv的sdk包

新建项目。导入模块File——New——Import Moudule。

选择sdk。

更改名字为OpenCV

此时 报错。

到Module下的build.gradle文件,注释这一行,try again。

3、更改build的相关版本

将app中build文件的版记下

把opencv的build文件改成自己对应的一模一样的版本

4、手动添加依赖

打开。

到下面路径,添加opencv后,点击Apply。

5、错误

1、命令空间错误。Namespace not specified

问题描述:

Namespace not specified. Specify a namespace in the module's build file: D:\AndroidProjects\MyFirstApplication\OpenCV\build.gradle. See https://d.android.com/r/tools/upgrade-assistant/set-namespace for information about setting the namespace.

If you've specified the package attribute in the source AndroidManifest.xml, you can use the AGP Upgrade Assistant to migrate to the namespace value in the build file. Refer to https://d.android.com/r/tools/upgrade-assistant/agp-upgrade-assistant for general information about using the AGP Upgrade Assistant.

在每一个模块中,都有一个build.gradle文件和AndroidManifest.xml,现在需要做的就是把AndroidManifest.xml中package="com.aaa.bbb"包名添加到模块对应的build.gradle中。

解决:我们找到OpenCV模块AndroidManifest.xml文件的包名,如下,把对应 namespace 'org.opencv'添加到opencv对应的Build文件中。

文件位置如图。

2、找不到 BuildConfig

问题描述:

 if (BuildConfig.DEBUG||true)           ^ 符号:   变量 BuildConfig 位置: 类 JavaCameraView

解决:OpenCV project uses buildConfig feature. Please enable it in MyApplication/OpenCV/build.gradle file to android block。

也就是在OpenCV的Build.gradle 文件中添加下面语句

buildFeatures{
    buildConfig true
}

如图:

检查生成的 BuildConfig.java 文件是否正确生成。可以在app/build/generated/source/buildConfig 目录下找到它

参考:OpenCV: Android Development with OpenCV

3、程序包 org.opencv.engine不存在

问题描述

错误: 程序包org.opencv.engine不存在 错误: 找不到符号   protected OpenCVEngineInterface mEngineService   程序包OpenCVEngineInterface不存在

所有这些错误都是由同一件事引起的-org.opencv.engine。因为SDK 里面提供的是aidl文件路径和Android 默认的不同。

解决方法:

第一步:在app/src/main下新建一个路径 aidl/org/opencv/engine。然后把原SDK路径,也就是OpenCV/java/src/org.opencv.engine包下的aidl文件拷贝到前面你新建的路径下。

第2步:在opencv的Build文件中添加语句:

buildFeatures {
    aidl true
}

第3步:向gradle.properties中添加下述代码

android.defaults.buildfeatures.buildconfig=true

如图:

问题参考:opencv4android3.0,android-Opencv 3.0.0 OpenCVEngineInterface-CSDN博客

Android studio中导入opencv库_import org.opencv.engine.opencvengineinterface;-CSDN博客

6、测试

在MainActivity.java中用下面测试。

if (OpenCVLoader.initDebug()) {
            Log.i("cv", "OpenCV loaded successfully");
        } else {
            Log.e("cv", "OpenCV initialization failed!");
            return;
        }

成功 控制台输出。

总结步骤

1.导入模块
2.注释konlin
3. 添加依赖
4.OpenCV的Build文件需要修改参数的版本 ,主要是3个,opencv和app中对应
5.在OpenCV-Build文件中添加namespace
namespace 'org.opencv'
6. 在OpenCV-Build文件中添加配置BuildConfig
buildFeatures{
    buildConfig true
}
5.拷贝文件

        (1)app/src/main下新建一个路径 aidl/org/opencv/engine。然后把OpenCV/java/src/org.opencv.engine包下的aidl文件拷贝到新建中。

        (2)在opencv-Build文件中添加语句

buildFeatures {
    aidl true
}

        (3)向gradle.properties中添加下述代码

android.defaults.buildfeatures.buildconfig=true


最后 OpenCV-Build文件中添加的有:

  

gradle.properties中

6.测试 

在MainActivity.java中测试

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值