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) {@Overridepublic void onManagerConnected(int status) {// TODO Auto-generated method stubswitch (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.sourceFileandroid {compileSdkVersion 32//buildToolsVersion "x.y.z" // not needed since com.android.tools.build:gradle:3.0.0defaultConfig {minSdkVersion 25targetSdkVersion 32externalNativeBuild {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 falseproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'}}compileOptions {sourceCompatibility JavaVersion.VERSION_1_8targetCompatibility 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 = 32defaultConfig {namespace = "org.opencv"minSdk = 25testInstrumentationRunner = "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_8targetCompatibility = 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.然后就可以直接使用了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/469347.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大模型开发整体流程 基于个人知识库的问答助手 项目流程架构解析

一、大模型开发整体流程 1. 何为大模型开发 定义核心点核心能力 2. 大模型开发的整体流程 1. 设计2. 架构搭建3. Prompt Engineering4. 验证迭代5. 前后端搭建 二、项目流程简析 步骤一:项目规划与需求分析 1.项目目标2.核心功能3.确定技术架构和工具 步骤二&#…

超详细:三大范式和反范式设计详解

目录 1、三大范式 第一范式: 列不可再分 。 第二范式: 行可以唯一区分 第三范式:确保数据的完整性、减少数据冗余和避免更新异常。 反方式模式 实验数据:模拟两张百万量级的数据表 反范式优化实验对比 反范式存在的问题 &am…

Python 实现阿里滑块全攻略

阿里划块技术为开发者提供了高精度的视觉分割能力,而 Python 作为一种简洁高效的编程语言,可以轻松调用阿里划块接口,实现各种场景下的图像分割需求。 Python 调用阿里云分割抠图 - 商品分割接口的步骤如下:首先,开通…

尤雨溪都点赞的测试工具,你还不用?

尤雨溪都点赞的测试工具,你还不用? 想要一个跨浏览器兼容、无闪退的测试体验?Playwright来了!它不仅支持主流浏览器自动化,还能轻松跨平台,让你轻松构建可靠的端到端测试。本文带你了解Playwright的功能亮点…

「IDE」VS2022插件 Visual Assist X 番茄助手介绍说明

✨博客主页何曾参静谧的博客📌文章专栏「IDE」集成开发环境📚全部专栏「Win」Windows程序设计「IDE」集成开发环境「UG/NX」BlockUI集合「C/C++」C/C++程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「UG/NX」NX定制开发「Py」Py

qt QFrame详解

1、概述 QFrame是Qt框架中用于提供框架或边框的控件,主要用于在图形用户界面(GUI)中创建框架,并提供各种边框样式和功能。它是Qt中一个基础的容器类,也是许多基础控件的基类,可以被QLCDNumber、QToolBox、…

数据重塑:长宽数据转换【基于tidyr】

在数据分析和可视化过程中,数据的组织形式直接影响着我们能够进行的分析类型和可视化效果。这里简单介绍两种常见的数据格式:长格式(Long Format)和宽格式(Wide Format),以及如何使用tidyr包进行…

【网络】应用层——HTTP协议

> 作者:დ旧言~ > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:了解什么是HTTP协议。 > 毒鸡汤:有些事情,总是不明白,所以我不会坚持。早安! > 专栏选自:网络 &g…

【安全测试】sqlmap工具(sql注入)学习

前言:sqimap是一个开源的渗透测试工具,它可以自动化检测和利用SQL注入缺陷以及接管数据库服务器的过程。它有一个强大的检测引擎,许多适合于终极渗透测试的小众特性和广泛的开关,从数据库指纹、从数据库获 取数据到访问底层文件系…

【Android】webview常用方法和使用

文章目录 前言一、常见用法二、基础属性webView的常用方法WebViewClient的常用方法WebChromeClient的常用方法WebSettings的相关方法 三、加载流程和事件回调四、webview和JS之间的互相调用总结 五、参考链接 前言 最近项目又用到了webview,在回顾复习一次webview相…

可编辑PPT | 指挥中心系统建设与应用方案

本方案是一份全面的指挥中心系统建设与应用方案,涵盖了建设方案分析、指挥调度、远程通讯、会务管理等多个方面,旨在通过整合语音、视频监控、会议、指挥调度等多种技术,构建一个现代化、网络化、智慧化的城市指挥中心,以提高应对…

计算机新手练级攻略——善用搜索引擎

计算机学生新手练级攻略——善用搜索引擎 在信息爆炸的时代,计算机专业的学生如何有效地自我提升?答案可能就藏在一个简单却强大的工具——搜索引擎中。搜索引擎不仅是获取知识的入口,更是解决问题的利器。下面,我将分享一些善用搜…

vs2019托管调试助手 “ContextSwitchDeadlock“错误

错误描述 托管调试助手 "ContextSwitchDeadlock":“CLR 无法从 COM 上下文 0xd183e0 转换为 COM 上下文 0xd18328,这种状态已持续 60 秒。拥有目标上下文/单元的线程很有可能执行的是非泵式等待或者在不发送 Windows 消息的情况下处理一个运行时间非常长…

【ARM】MDK-烧录配置文件无权限访问

【更多软件使用问题请点击亿道电子官方网站】 1、 问题场景 客户代码编译正常、调试出现报错<Error: Flash Download failed - "Cortex-M4"> 仿真器识别正常&#xff0c;keil-Debug内显示相关信息、设备启动正常。 记录排查步骤&#xff0c;找到配置文件位…

【C语言刷力扣】66.加一

题目&#xff1a; 解题思路&#xff1a; 最初思路是打算将数组中的数提出来&#xff0c;加一&#xff0c;再放回另一数组中。后来发现数组最大长度100&#xff0c;而100位的数字太大了。 所有在数组上实现加一。 利用 carry 标记每一位是否进位&#xff0c;即该位数加 carry &a…

Docker使用docker-compose一键部署nacos、Mysql、redis

下面是一个简单的例子&#xff0c;展示如何通过Docker Compose文件部署Nacos、MySQL和Redis。请确保您的机器上已经安装了Docker和Docker Compose。 1&#xff0c;准备好mysql、redis、nacos镜像 sudo docker pull mysql:8 && sudo docker pull redis:7.2 &&…

【LLM】3:从零开始训练大语言模型(预训练、微调、RLHF)

一、 大语言模型的训练过程 预训练阶段&#xff1a;PT&#xff08;Pre training&#xff09;。使用公开数据经过预训练得到预训练模型&#xff0c;预训练模型具备语言的初步理解&#xff1b;训练周期比较长&#xff1b;微调阶段1&#xff1a;SFT&#xff08;指令微调/有监督微调…

YOLO即插即用---PConv

Run, Don’t Walk: Chasing Higher FLOPS for Faster Neural Networks 论文地址&#xff1a; 1. 论文解决的问题 2. 解决问题的方法 3. PConv 的适用范围 4. PConv 在目标检测中的应用 5. 评估方法 6. 潜在挑战 7. 未来研究方向 8.即插即用代码 论文地址&#xff1a; …

Fortran安装(vscode+gcc+Python)

编写时间&#xff1a; 2024年11月7日 环境配置&#xff1a; gcc VScode Python 条件&#xff1a; Windows 10 x64 VMware虚拟机 前言 这是我出的第2个关于Fortran安装的教程&#xff0c;由于上一个方法&#xff08;你可以在本专栏里找到&#xff09;对储存空间的要求比较…

ModuleNotFoundError: No module named ‘_ssl‘ centos7中的Python报错

报错 ModuleNotFoundError: No module named ‘_ssl’ 解决步骤&#xff1a; 1.下载openssl wget https://www.openssl.org/source/openssl-3.0.7.tar.gz tar -zxvf openssl-3.0.7.tar.gz cd openssl-3.0.72.编译安装 ./config --prefix/usr/local/openssl make make install3…