You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio编写C++代码时无法找到opencv2的技术咨询

Hey there! Let's work through that "Cannot find opencv2" error you're hitting in your Android Studio C++ project step by step.

解决Android Studio C++项目中找不到opencv2的问题

第一步:确认你拿到了适配Android的OpenCV原生库

首先要注意:你需要下载OpenCV for Android的专属包,不是桌面版OpenCV。解压后找到sdk/native目录——这里面包含了我们需要的头文件和预编译的SO库。建议把这个native目录复制到你的项目根目录下(比如新建一个opencv文件夹,把native内容放进去),方便后续路径配置。

第二步:用CMake配置(Android Studio推荐方式)

如果你的项目默认用CMake管理原生代码,修改app/src/main/cpp/CMakeLists.txt:

  1. 先设置OpenCV的路径并引入头文件:
# 根据你实际的OpenCV路径调整,这里假设opencv/native在项目根目录
set(OPENCV_DIR ${CMAKE_SOURCE_DIR}/../../opencv/native)
include_directories(${OPENCV_DIR}/jni/include)
  1. 引入预编译的OpenCV库:
add_library(libopencv_java4 SHARED IMPORTED)
set_target_properties(libopencv_java4 PROPERTIES IMPORTED_LOCATION
    ${OPENCV_DIR}/libs/${ANDROID_ABI}/libopencv_java4.so)
  1. 把OpenCV库链接到你的原生库:
target_link_libraries(
    your-native-lib-name  # 替换成你的原生库名称
    ${log-lib}
    libopencv_java4)
  1. 别忘了在app/build.gradle里指定支持的ABI(和OpenCV库的ABI匹配):
android {
    defaultConfig {
        externalNativeBuild {
            cmake {
                abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
            }
        }
    }
}

第三步:用Android.mk + Application.mk配置(传统方式)

如果你坚持使用老的NDK Build系统:

  1. 在原生代码目录(比如app/src/main/jni)下创建Android.mk:
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

# 替换成你的OpenCV native目录路径
OPENCVROOT:= ${LOCAL_PATH}/../../../../opencv/native
OPENCV_CAMERA_MODULES:=off
OPENCV_INSTALL_MODULES:=on
OPENCV_LIB_TYPE:=SHARED
include ${OPENCVROOT}/jni/OpenCV.mk

LOCAL_SRC_FILES := your-native-file.cpp  # 替换成你的C++文件名
LOCAL_LDLIBS += -llog -ldl
LOCAL_MODULE := your-native-lib-name     # 替换成你的原生库名称

include $(BUILD_SHARED_LIBRARY)
  1. 同目录下创建Application.mk:
APP_STL := c++_shared
APP_CPPFLAGS := -frtti -fexceptions
APP_ABI := armeabi-v7a arm64-v8a x86 x86_64
APP_PLATFORM := android-24  # 替换成你的项目最低SDK版本
  1. 在app/build.gradle里指定使用NDK Build:
android {
    defaultConfig {
        externalNativeBuild {
            ndkBuild {
                path 'src/main/jni/Android.mk'
            }
        }
    }
    externalNativeBuild {
        ndkBuild {
            path 'src/main/jni/Android.mk'
        }
    }
}

第四步:同步并清理缓存

完成配置后,点击Android Studio右上角的Sync Project with Gradle Files,然后执行Build > Clean Project和Build > Rebuild Project——缓存经常会导致这类路径识别问题。

最后检查

确保你的C++文件里的头文件引用写法正确:

#include <opencv2/opencv.hpp>

不要用错误的相对路径,比如../opencv2/...这类写法。

内容的提问来源于stack exchange,提问作者Dan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 09:19:47