Android Studio 配置OpenCV Android SDK开发环境

新建项目

Android Studio版本2023.3.1 Patch 1,本教程更适用于相近版本的IDE

选择其他项目模板也是可以的,这里以Empty Views Activity为例。

Build configuration language选择Groovy DSL,旧版本Android studio没有这个选项直接忽略即可。

安装必要的SDK Tools

从file->settings或右上角IDE and project settings进入SDK Manager,进入SDK Tools选项卡。

勾选NDK(Side by side)和CMake,OK并等待安装。

安装完成后可以试下Make module能否成功,成功后再进行下一步。

引入和配置OpenCV-android-sdk

下载OpenCV-android-sdk

进入opencv官网releases页面:https://opencv.org/releases/,选择你需要的版本,这里以4.6.0为例。

点击Android下载Android SDK。

下载后解压

将OpenCV-android-sdk作为module导入Android studio

File->New->import module

选择到名为sdk的文件夹

Module name起一个你喜欢的名字

修改openCV module的build.gradle文件

上一步完成后应该会自动build报错

A problem occurred evaluating project ':openCV'.
> Plugin with id 'kotlin-android' not found.

* Try:
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

打开openCV module的build.gradle(应该会自动打开),如没有切换到project视图,按下图位置即可找到。

apply plugin: 'com.android.library'
//    apply plugin: 'kotlin-android' 将这一行注释掉

点击Gradle的try again

继续报错

Namespace not specified. Specify a namespace in the module's build file. 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.

在android块开头位置添加namespace

android {
    namespace "org.opencv"

此时会build成功,但是还是有编辑器报错,我们修改compileSdkVersion、minSdkVersion、targetSdkVersion的版本和名称。(注释是修改前的行,下一行是修改后的)

android {
    namespace "org.opencv"
//    compileSdkVersion 26
    compileSdk 33
    defaultConfig {
//        minSdkVersion 21
//        targetSdkVersion 26
        minSdk 24
        targetSdk 33

点击Gradle的Sync Now,然后build,成功

把opencv引入app module供调用

进入Project Structure->Dependencies->app,点击+,选择Module Denpendency,勾选openCV,OK,OK。

build app module,出现报错

C:\Users\rby20\AndroidStudioProjects\testCamera\openCV\java\src\org\opencv\android\AsyncServiceHelper.java:7: 错误: 程序包org.opencv.engine不存在
import org.opencv.engine.OpenCVEngineInterface;
                        ^

导致这个问题的原因并非如其他一些文章所说的是缺少aidl文件或aidl文件位置不对,而是openCV module没有启用aidl,解决办法是在openCV module的build.gradle文件中android代码块内添加buildFeatures如下配置。

android {
    ...

    buildFeatures{
        aidl =true
        buildConfig=true
    }
    ...

Sync Now后再次build app module,BUILD SUCCESSFUL in 4s!

import opencv并测试

在onCreate中添加代码

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        ...
        if (OpenCVLoader.initDebug()) {
            Log.d("OPENCV", "Opencv init success");
        }
        ...
    }
}

构建并运行,进入Logcat,可见日志输出说明加载opencv成功,可以愉快地在Android中使用opencv了~

*opencv更多用法见SDK附带的sample或官方文档

opencv 4.6.0 Java文档 https://docs.opencv.org/4.6.0/javadoc/index.html

或者查看opencv-python的相关学习资料,opencv的方法参数是相同的

评论

  1. sanyoku
    8 月前
    2023-9-15 18:02:44

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇