android studio导入OpenCv并改造成.kts版本

1.下载opencv Android版本

2.解压导入android studio,我这里是先导入低版本的,还是gradle,直接导入module,我这里是4.2.0的版本

我的as版本是Android Studio Electric Eel 2022.1.1 Patch 2,我导入直接就能用

复制代码
 //load OpenCV engine and init OpenCV library
//这里放在oncreate里面用作初始化
        if (!OpenCVLoader.initDebug()){
            OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_2_0,this,mLoaderCallback);
        }else{
            mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);
        }


  //OpenCV库加载并初始化成功后的回调函数
    private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {

        @Override
        public void onManagerConnected(int status) {
            // TODO Auto-generated method stub
            switch (status){
                case BaseLoaderCallback.SUCCESS:
                    Log.e(TAG, "openCv=================成功加载");
                    break;
                default:
                    super.onManagerConnected(status);
                    Log.e(TAG, "openCv=================加载失败");
                    break;
            }
        }
    };

3.改造成build.gradle.kts版本使用

1.把代码从低版本android studio直接复制到高版本的android studio里面,这里我改了个名字,为了比较直观,我直接复制了两份用来做对比

2.直接对比改造

原版本

复制代码
apply plugin: 'com.android.library'

println "OpenCV: " + project.buildscript.sourceFile

android {
    compileSdkVersion 32
    //buildToolsVersion "x.y.z" // not needed since com.android.tools.build:gradle:3.0.0

    defaultConfig {
        minSdkVersion 25
        targetSdkVersion 32

        externalNativeBuild {
            cmake {
                arguments "-DANDROID_STL=c++_shared"
                targets "opencv_jni_shared"
            }
        }
    }

    buildTypes {
        debug {
            packagingOptions {
               // doNotStrip '**/*.so'  // controlled by OpenCV CMake scripts
            }
        }
        release {
            packagingOptions {
               // doNotStrip '**/*.so'  // controlled by OpenCV CMake scripts
            }
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    sourceSets {
        main {
            jniLibs.srcDirs = ['native/libs']
            java.srcDirs = ['java/src']
            aidl.srcDirs = ['java/src']
            res.srcDirs = ['java/res']
            manifest.srcFile 'java/AndroidManifest.xml'
        }
    }

    externalNativeBuild {
        cmake {
            path (project.projectDir.toString() + '/libcxx_helper/CMakeLists.txt')
        }
    }

}

dependencies {
}

改造以后的版本

复制代码
plugins {
    id("com.android.library")
}

println("OpenCV: " + project.buildscript.sourceFile)


android {
    compileSdk = 32

    defaultConfig {
        namespace = "org.opencv"
        minSdk = 25

        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
        consumerProguardFiles("consumer-rules.pro")

        externalNativeBuild {
            cmake {
                arguments.add("-DANDROID_STL=c++_shared")
                targets.add("opencv_jni_shared")
            }
        }
    }


    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }


    sourceSets {
        getByName("main") {
            jniLibs.srcDirs("native/libs")
            java.srcDirs("java/src")
            aidl.srcDirs("java/src")
            res.srcDirs("java/res")
            manifest.srcFile("java/AndroidManifest.xml")
        }
    }

    externalNativeBuild {
        cmake {
            path = file("${project.projectDir}/libcxx_helper/CMakeLists.txt")
        }
    }
    buildFeatures{
        aidl =  true
    }

}

dependencies {

}

因为新kts的一些特性,我们新增了

复制代码
(1).namespace = "org.opencv"
(2).buildFeatures{
    aidl =  true
}

3.然后就可以直接使用了

相关推荐
还鮟2 小时前
CTF Web的数组巧用
android
木头没有瓜2 小时前
vscode离线安装插件
ide·vue.js·vscode
小蜜蜂嗡嗡3 小时前
Android Studio flutter项目运行、打包时间太长
android·flutter·android studio
aqi003 小时前
FFmpeg开发笔记(七十一)使用国产的QPlayer2实现双播放器观看视频
android·ffmpeg·音视频·流媒体
lls2334 小时前
恢复idea文件目录
ide
zhangphil5 小时前
Android理解onTrimMemory中ComponentCallbacks2的内存警戒水位线值
android
你过来啊你5 小时前
Android View的绘制原理详解
android
NeRF_er5 小时前
使用 VScode Debug加不上断点的原因
ide·vscode·编辑器
GHL2842710905 小时前
error MSB8041: 此项目需要 MFC 库。从 Visual Studio 安装程序(单个组件选项卡)为正在使用的任何工具集和体系结构安装它们。
ide·visual studio
移动开发者1号8 小时前
使用 Android App Bundle 极致压缩应用体积
android·kotlin