Kotlin DSL C++项目引入OpenCV异常处理
现象
kotlin DSL(build.rgadle.kts)项目引入openCV sdk 编译提示Plugin [id: 'com.android.application', version: '8.2.1'...错误
Plugin [id: 'com.android.application', version: '8.2.1', apply: false] was not found in any of the following sources:* Try:
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.* Exception is:
org.gradle.api.plugins.UnknownPluginException: Plugin [id: 'com.android.application', version: '8.2.1', apply: false] was not found in any of the following sources:- Gradle Core Plugins (plugin is not in 'org.gradle' namespace)
- Plugin Repositories (could not resolve plugin artifact 'com.android.application:com.android.application.gradle.plugin:8.2.1')Searched in the following repositories:Gradle Central Plugin Repository ...
原因
openCV sdk 中使用的是Groovy DSL(build.gradle)
解决方案
将项目中settings.gradle文件中内容拷贝到settings.gradle.kts后将之删除
将openCV sdk Module 下build.gradle改成build.gradle.kts
附:build.gradle.kts
import com.android.build.api.dsl.JniLibsPackaging// This file is part of OpenCV project.
// It is subject to the license terms in the LICENSE file found in the top-level directory
// of this distribution and at http://opencv.org/license.html.//
// Notes about integration OpenCV into existed Android Studio application project are below (application 'app' module should exist).
//
// This file is located in <OpenCV-android-sdk>/sdk directory (near 'etc', 'java', 'native' subdirectories)
//
// Add module into Android Studio application project:
//
// - Android Studio way:
// (will copy almost all OpenCV Android SDK into your project, ~200Mb)
//
// Import module: Menu -> "File" -> "New" -> "Module" -> "Import Gradle project":
// Source directory: select this "sdk" directory
// Module name: ":opencv"
//
// - or attach library module from OpenCV Android SDK
// (without copying into application project directory, allow to share the same module between projects)
//
// Edit "settings.gradle" and add these lines:
//
// def opencvsdk='<path_to_opencv_android_sdk_rootdir>'
// // You can put declaration above into gradle.properties file instead (including file in HOME directory),
// // but without 'def' and apostrophe symbols ('): opencvsdk=<path_to_opencv_android_sdk_rootdir>
// include ':opencv'
// project(':opencv').projectDir = new File(opencvsdk + '/sdk')
//
//
//
// Add dependency into application module:
//
// - Android Studio way:
// "Open Module Settings" (F4) -> "Dependencies" tab
//
// - or add "project(':opencv')" dependency into app/build.gradle:
//
// dependencies {
// implementation fileTree(dir: 'libs', include: ['*.jar'])
// ...
// implementation project(':opencv')
// }
//
//
//
// Load OpenCV native library before using:
//
// - avoid using of "OpenCVLoader.initAsync()" approach - it is deprecated
// It may load library with different version (from OpenCV Android Manager, which is installed separatelly on device)
//
// - use "System.loadLibrary("opencv_java4")" or "OpenCVLoader.initDebug()"
// TODO: Add accurate API to load OpenCV native library
//
//
//
// Native C++ support (necessary to use OpenCV in native code of application only):
//
// - Use find_package() in app/CMakeLists.txt:
//
// find_package(OpenCV 4.7 REQUIRED java)
// ...
// target_link_libraries(native-lib ${OpenCV_LIBRARIES})
//
// - Add "OpenCV_DIR" and enable C++ exceptions/RTTI support via app/build.gradle
// Documentation about CMake options: https://developer.android.com/ndk/guides/cmake.html
//
// defaultConfig {
// ...
// externalNativeBuild {
// cmake {
// cppFlags "-std=c++11 -frtti -fexceptions"
// arguments "-DOpenCV_DIR=" + opencvsdk + "/sdk/native/jni" // , "-DANDROID_ARM_NEON=TRUE"
// }
// }
// }
//
// - (optional) Limit/filter ABIs to build ('android' scope of 'app/build.gradle'):
// Useful information: https://developer.android.com/studio/build/gradle-tips.html (Configure separate APKs per ABI)
//
// splits {
// abi {
// enable true
// universalApk false
// reset()
// include 'armeabi-v7a' // , 'x86', 'x86_64', 'arm64-v8a'
// }
// }
//plugins {id("com.android.library")id("org.jetbrains.kotlin.android")
}val openCVersionName = "4.7.0-dev"
val openCVersionCode = ((4 * 100 + 7) * 100 + 0) * 10 + 0println("OpenCV: " + openCVersionName + " " + project.buildscript.sourceFile)android {namespace = "org.opencv"compileSdk = 34defaultConfig {minSdk = 24 testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"externalNativeBuild {cmake {arguments("-DANDROID_STL=c++_shared")targets("opencv_jni_shared")}}}buildTypes {debug {packaging { jniLibs{keepDebugSymbols.add("**/*.so")}} }release {packaging {jniLibs{keepDebugSymbols.add("**/*.so")}}isMinifyEnabled = falseproguardFiles(getDefaultProguardFile("proguard-android.txt"),"proguard-rules.pro")}}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")}}
}dependencies {
}相关文章:
Kotlin DSL C++项目引入OpenCV异常处理
现象 kotlin DSL(build.rgadle.kts)项目引入openCV sdk 编译提示Plugin [id: com.android.application, version: 8.2.1...错误 Plugin [id: com.android.application, version: 8.2.1, apply: false] was not found in any of the following sources:* Try: > Run with -…...
【微服务】 Spring cold、Kubernetes、Service mesh
目录 Spring Cloud # 什么是微服务?谈谈你对微服务的理解? # 什么是Spring Cloud? # springcloud中的组件有那些? # 具体说说SpringCloud主要项目? # Spring Cloud 和dubbo区别? # 服务注册和发现是什么意思?S…...
【scala】编译build报错 “xxx is not an enclosing class“
private[sources] val creationTimeMs: Long {val session SparkSession.getActiveSession.orElse(SparkSession.getDefaultSession)require(session.isDefined)private[xxx]是访问权限控制在xxxx包的意思。 解决办法: 把[sources]删掉,或者改成和包名…...
vue3+ts+vite项目从0 搭建,配置安装router/pinia/element-plus/scss等
一、安装vite环境 官网:https://cn.vitejs.dev/guide/why.html npm init vite1.选择vue 2.选择typescipt 3.创建成功 默认项目结构如下 4.安装项目依赖 npm install 5.启动项目 npm run dev二。安装配置scss 1.运行安装scss npm install -D sass sass-loa…...
华为OD机试 - 矩阵匹配(Java JS Python C)
题目描述 从一个 N * M(N ≤ M)的矩阵中选出 N 个数,任意两个数字不能在同一行或同一列,求选出来的 N 个数中第 K 大的数字的最小值是多少。 输入描述 输入矩阵要求:1 ≤ K ≤ N ≤ M ≤ 150 输入格式: N M K N*M矩阵 输出描述 N*M 的矩阵中可以选出 M! / N! 种组合数…...
使用ffmpeg实现音频静音修剪
1 silenceremove介绍 本文主要介绍在 FFmpeg 命令中使用 silenceremove filter 进行音频静音的修剪。 1.1 start_x参数 参数名说明取值范围默认值start_periods设置是否应在音频开头修剪音频。0 表示不应从一开始就修剪静音。当指定一个非 0 值时,它会修剪音频直…...
Java项目调试实战:如何高效调试Spring Boot项目中的GET请求,并通过equalsIgnoreCase()解决大小写不一致问题
Java项目调试实战:如何高效调试Spring Boot项目中的GET请求,并通过equalsIgnoreCase解决大小写不一致问题 写在最前面全部过程Java equalsIgnoreCase() 方法idea中如何调试SpringBoot项目在IntelliJ IDEA中使用内置HTTP客户端设置断点和调试 补充&#x…...
Google Pixel 与 iPhone手机:哪个更好?
iPhone稳定可靠,Pixel性价比高且创新。两者各有千秋,满足不同需求 谷歌的 Pixel 手机是 Android 最接近 iPhone 的手机,也是真正原生的Android手机。在iPhone 15 Pro Max 与华为 Mate 60 Pro的比较中不难看出,iPhone依然有着极强…...
ddos攻击会让服务器受到什么影响?-速盾网络(sudun)
DDoS攻击是一种网络攻击手段,它通过利用大量的请求或恶意流量超过服务器的处理能力,从而导致服务器无法正常工作或服务质量显著下降。 首先,DDoS攻击会对服务器的带宽造成极大的压力。攻击者会利用大量的机器或网络资源发起攻击,…...
NSSCTF Interesting_include
开启环境: 通过审计,我们可知: flag在flag.php中,可以利用php中伪协议 payload:?filterphp://filter/readconvert.base64-encode/resourceflag.php 将其base64解码就是flag. NSSCTF{3dc54721-be9e-444c-8228-7133fba76ad4}...
IPv6路由协议---IPv6动态路由(OSPFv3-5)
OSPFv3各链路状态通告类型 4.Inter-Area-Router-LSA区域间路由器(4类LSA) 边界路由器(ABR)产生的第4类LSA,在Area 范围内泛洪,描述了到本AS内其他区域的ASBR路由器信息; 每各Inter-Area-Router-LSA包含一个ASBR路由器信息,LSA中的能力选项(Options)与所描述的ASBR …...
GPT Store开业大吉:一场AI技术与创新的盛宴
就在1.11 日,ChatGPT 正式上线 GPT Store ! OpenAI CEO 山姆奥特曼第一时间确认了这个消息: 自从GPTs的概念提出以来,短短两个月内,全球用户已经创造了超过300万个GPTs。 点击 GPT Store 或者进入ChatGpt页面&am…...
Linux---gcc编译
目录 前言 一、gcc编译 二、程序的编译过程 三、gcc查看编译过程 1.预处理阶段 2.编译 3.汇编 4.链接 动静态库链接的内容 动静态库链接的优缺点 5.总结记忆 前言 在前面我们学会使用vim对文件进行编辑,如果是C或者C程序,我们编辑好了内容…...
使用阿里云镜像创建一个Spring Boot项目
由于现在的idea在创建项目时已经不支持Java8版本了,如果我们还想用8版本,可以使用阿里云镜像创建。所以得改变原有的地址为:https://start.aliyun.com springboot版本选择2开头的任意版本的。 1.配置6个依赖 2.改变下载依赖地址 下载依赖默认…...
工智能基础知识总结--词嵌入之Word2Vec
词嵌入要解决什么问题 在自然语言系统中,词被看作最为基本的单元,如何将词进行向量化表示是一个很基本的问题,词嵌入(word embedding)就是把词映射为低维实数域向量的技术。 下面先介绍几种词的离散表示技术,然后总结其缺点,最后介绍词的分布式表示及其代表技术(word2v…...
redis stream restTemplate消息监听队列框架搭建
整体思路 1. pom增加redis依赖; 2. 消息监听器,实现StreamListener接口,处理消息到达逻辑; 3. 将消息订阅bean及监听器注册到配置中; 1. pom <?xml version"1.0" encoding"UTF-8"?> <…...
【期末不挂科-C++考前速过系列P1】大二C++第1次过程考核(3道简述题&7道代码题)【解析,注释】
前言 大家好吖,欢迎来到 YY 滴C复习系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! YY的《C》专栏YY的《C11》专栏YY的《Lin…...
游戏开发中,你的游戏图片压缩格式使用ASTC了吗
文章目录 ASTC原理:使用要求 ASTC(Adaptive Scalable Texture Compression,自适应可伸缩纹理压缩)是一种高级的纹理压缩技术,由ARM公司开发并推广。它在图形处理领域中因其出色的压缩效率和灵活性而受到广泛关注。 AST…...
【PostgreSQL】数据查询-概述
PostgreSQL数据查询 概述 检索或从数据库中检索数据的命令的过程称为查询。在 SQL 中,SELECT 命令用于指定查询。该命令的一般语法是SELECT [WITH with_queries] SELECT select_list FROM table_expression [sort_specification]一种简单的查询形式为:…...
element input组件自动失去焦点问题解决
最近在 Vue3 ElementPlus 中,使用 el-input 组件时,如果设置了 v-model,那么在每次改变内容后后,input 会自动失去焦点,这样会导致用户无法输入多个字符。 一、问题原因 如上图所示,配置项的 Name 和 Cod…...
IQR四分位数法是什么?
一、核心概念:四分位数与IQR1. 四分位数(Quartiles)将一组有序数据(从小到大排列)划分为4个相等部分的三个关键分割点,分别记为:Q1(第一四分位数,25%分位数)&…...
YOLO12快速部署指南:Gradio界面已配好,启动就能用
YOLO12快速部署指南:Gradio界面已配好,启动就能用 1. 为什么选择YOLO12镜像 YOLO12作为2025年最新发布的目标检测模型,带来了革命性的注意力为中心架构。这个预配置好的镜像让您无需任何复杂操作,就能立即体验最先进的目标检测技…...
[STM32问题解决(2)]编译错误:Error: L6218E的深度解析与实战排查指南
1. 认识Error: L6218E编译错误 当你正在Keil MDK环境下开发STM32项目时,突然弹出一个红色错误提示:"Error: L6218E: Undefined symbol xxx (referred from xxx.o)",这可能是每个STM32开发者都会遇到的经典问题。我第一次遇到这个错…...
YOLOv5+Swin-Tiny实战:在自定义数据集上提升小目标检测精度的完整流程
YOLOv5与Swin-Tiny融合实战:工业级小目标检测优化指南 在无人机巡检、遥感监测和工业质检等场景中,小目标检测一直是计算机视觉领域的棘手挑战。传统卷积神经网络(CNN)在处理这类任务时,往往难以兼顾感受野与计算效率的平衡。本文将带您探索如…...
2GB内存Linux系统运行Django或Flask项目会不会内存不足?
在 2GB 内存的 Linux 系统上运行 Django 或 Flask 项目,完全可行,但需要谨慎配置和监控。能否稳定运行取决于你的应用复杂度、并发量以及部署架构。 原文地址:https://blog.zestb.com/article/129805.html 以下是具体的分析和优化建议&…...
Kivy中文显示乱码?3步搞定字体配置(附免费字体下载)
Kivy中文显示乱码?3步搞定字体配置(附免费字体下载) 当你在Kivy应用中看到中文变成一堆问号或方框时,别急着怀疑人生——这通常是字体配置的小问题。作为Python生态中最受欢迎的跨平台GUI框架之一,Kivy默认使用Roboto字…...
Keyv自定义序列化教程:超越JSON,支持更多数据类型
Keyv自定义序列化教程:超越JSON,支持更多数据类型 【免费下载链接】keyv jaredwray/keyv: 这是一个分布式键值存储库,用于在多个节点上存储数据。适合用于需要分布式存储和访问的场景。特点:易于使用,支持多种数据存储…...
AI集成开发工程师的技术实践与转型之路
第一章:技术架构演进与AI融合趋势 1.1 传统开发范式的演进 现代软件开发正经历从单一业务系统向智能化业务系统的转型。传统的.NET技术栈作为企业级应用开发的基石,其技术架构也在不断演进: // 典型的三层架构示例 public class BusinessLogic {private readonly IDataAc…...
Qwen3-14B部署后效果追踪:30天使用数据与关键指标增长分析
Qwen3-14B部署后效果追踪:30天使用数据与关键指标增长分析 1. 部署效果概览 在RTX 4090D 24GB显存环境下部署Qwen3-14B镜像后,我们对系统进行了为期30天的持续监测。数据显示,这套优化配置展现出令人印象深刻的稳定性和性能表现:…...
英特尔 BOT 优化 Geekbench 6:性能提升背后的争议与影响
【导语:英特尔的二进制优化工具(BOT)引发关注,它能修改可执行文件指令序列提升性能,但仅与少数应用配合。研究人员对其在 Geekbench 6 上的表现进行测试,结果引发对基准测试公平性的思考。】启动开销&#…...
