> 技术文档 > 【配置教程】新版OpenCV+Android Studio环境配置(4.11测试通过)_org.opencv:opencv-android

【配置教程】新版OpenCV+Android Studio环境配置(4.11测试通过)_org.opencv:opencv-android


在 Android Studio 中连接新版 OpenCV(4.11)

很多教程都无法正常在新版工作,因此这里我更新一下教程。后面会再写一个如何加入cpp的教程。


一、准备工作

  1. 下载 OpenCV Android SDK

    • 访问:https://opencv.org/releases/
    • 下载如 OpenCV-4.x.x-android-sdk.zip
    • 解压至任意目录,例如:~/Android/OpenCV-android-sdk
  2. 安装 Android Studio

    • https://developer.android.com/studio

二、新建 Android 项目

  1. 打开 Android Studio,选择 New Project
  2. 使用 Empty Activity
  3. 输入项目名,例如 OpenCVTest
  4. 设置语言为 JavaKotlin(建议使用 Java)
  5. 选择合适的最小 API Level(建议 API 21 或更高)

三、集成 OpenCV 库

方式一:使用 OpenCV SDK 模块(推荐)

  1. 导入 OpenCV SDK 模块

    • 在 Android Studio 中右键项目根目录 > New > Import Module
    • 路径选择:/sdk/java
    • Module name 保持默认::openCVLibrary4
  2. 将 OpenCV 模块添加到你的 app 中

    编辑 settings.gradle

    include \':app\', \':openCVLibrary4\'

    编辑 app/build.gradle

    dependencies { implementation project(\':openCVLibrary4\')}

四、配置 Native 支持(可选)

如果你需要使用 OpenCV 的 C++ 接口(如通过 JNI),可添加 NDK 支持。

  1. 启用 C++ 支持

    • 在新建项目时勾选“Include C++ Support”,或
    • 手动添加 CMakeLists.txt 与 JNI 源码
  2. 编辑 CMakeLists.txt

    cmake_minimum_required(VERSION 3.4.1)set(OpenCV_DIR /sdk/native/jni)find_package(OpenCV REQUIRED)add_library(native-lib SHARED native-lib.cpp)target_link_libraries(native-lib ${OpenCV_LIBS} log)
  3. 配置 build.gradle

    externalNativeBuild { cmake { path \"src/main/cpp/CMakeLists.txt\" }}sourceSets { main { jniLibs.srcDirs = [\'/sdk/native/libs\'] }}

五、加载 OpenCV 库

MainActivity.java 中添加如下代码:

import org.opencv.android.OpenCVLoader;import android.util.Log;import android.widget.Toast;public class MainActivity extends AppCompatActivity { private static final String TAG = \"OpenCV\"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (!OpenCVLoader.initDebug()) { Log.e(TAG, \"OpenCV initialization failed!\"); Toast.makeText(this, \"OpenCV initialization failed!\", Toast.LENGTH_LONG).show(); } else { Log.i(TAG, \"OpenCV loaded successfully\"); } }}

六、验证配置

  1. 运行 app,查看 Logcat 是否输出:

    OpenCV loaded successfully
  2. 若提示失败,确认:

    • jniLibs 是否包含了合适架构的 .so 文件
    • OpenCVLoader.initDebug() 被正确调用

七、调试和注意事项

  • initDebug() 仅适用于调试模式。发布版本请使用 OpenCV Manager 或静态初始化。

  • 可用命令确认 .so 文件架构是否匹配:

    file libopencv_java4.so
  • 若使用 Kotlin,语法略有差异,注意 API 兼容性。


八、附录

JNI 示例:

#include #include #include extern \"C\" JNIEXPORT jstring JNICALLJava_com_example_opencvtest_MainActivity_stringFromJNI( JNIEnv* env, jobject /* this */) { cv::Mat mat = cv::Mat::eye(3, 3, CV_8UC1); std::string msg = \"OpenCV Mat:\\n\" + std::to_string(mat.rows) + \"x\" + std::to_string(mat.cols); return env->NewStringUTF(msg.c_str());}

九、参考链接

  • OpenCV for Android 官方文档
  • OpenCV GitHub
  • NDK 配置文档