1.openCV sdk 使用的是 build.gradle Groovy 来配置,其实和 build.gradle.kts Kotlin DSL 是可以两者共存的,只需要同时保留settings.gradle和settings.gradle.kts。当然你如果像我一样有强迫症,后面有 我转换好的 Kotlin DSL。
2.官方的 opencv-4.10.0-android-sdk .so 文件太占地方,附带 opencv-mobile-4.10.0-android 精简版 在github上下载:opencv-mobile。
一、将项目中 settings.gradle 文件删除,在 settings.gradle.kts 文件中添加 include(":opencv"),将openCV sdk Module 下 build.gradle 改成 build.gradle.kts
附:build.gradle.kts
plugins {
id("com.android.library")
}
android {
namespace = "org.opencv"
compileSdk = 34
defaultConfig {
minSdk = 26
externalNativeBuild {
cmake {
arguments("-DANDROID_STL=c++_shared")
targets("opencv_jni_shared")
}
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
buildTypes {
getByName("debug") {
packaging {
jniLibs.keepDebugSymbols.add("**/*.so") // controlled by OpenCV CMake scripts
}
}
getByName("release") {
packaging {
jniLibs.keepDebugSymbols.add("**/*.so") // controlled by OpenCV CMake scripts
}
isMinifyEnabled = false
proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro")
}
}
buildFeatures {
buildConfig = true
}
sourceSets {
getByName("main") {
jniLibs.srcDirs("native/libs")
java.srcDirs("java/src")
res.srcDirs("java/res")
manifest.srcFile("java/AndroidManifest.xml")
}
}
externalNativeBuild {
cmake {
path("${project.projectDir}/libcxx_helper/CMakeLists.txt")
version = "3.31.0"
}
}
}
二、opencv-mobile-4.10.0-android 精简版 的 配置文件:
附:CMakeLists.txt
cmake_minimum_required(VERSION 3.22.1)
project("nativelib")
# 指定.cmake文件路径
set(OpenCV_DIR ${CMAKE_SOURCE_DIR}/opencv-mobile-4.10.0-android/sdk/native/jni)
# 查找.cmake文件 找到后将头文件目录设置为${OpenCV_INCLUDE_DIRS},库文件目录设为${OpenCV_LIBS}
find_package(OpenCV REQUIRED core imgproc highgui)
# 包含OpenCV头文件目录
include_directories(${OpenCV_INCLUDE_DIRS})
find_library(Graphics-lib jnigraphics)
add_library(${CMAKE_PROJECT_NAME} SHARED
nativelib.cpp)
# 链接OpenCV库文件目录
target_link_libraries(${CMAKE_PROJECT_NAME}
${OpenCV_LIBS}
${Graphics-lib}
android
log)
903

被折叠的 条评论
为什么被折叠?



