目录
1、命令空间错误。Namespace not specified
4.OpenCV的Build文件需要修改参数的版本 ,主要是3个,opencv和app中对应
6. 在OpenCV-Build文件中添加配置BuildConfig
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中测试