我如何在android studio的项目中使用openCV - 但我需要在其他原生cpp文件中使用它而不是在java中。
我找到的所有指南和教程都解释了如何在java文件中使用openCV(loadLibrary ..) 例如this和this
最终我拥有jniLibs文件夹中的所有.so或将openCV添加为具有依赖项的模块, 但我该怎么做“#include ..”? 怎么没有得到
错误:'cv'不是名称空间名称
的
使用namespace cv;
? (当然还有其他openCV代码......)
非常感谢!
答案 0 :(得分:5)
最后我成功了:
我创建了自己的android.mk文件:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# OpenCV
OPENCV_INSTALL_MODULES:=on
include path/to/OpenCV-2.4.10-android-sdk/sdk/native/jni/OpenCV.mk
LOCAL_MODULE := glucomesdk
LOCAL_CFLAGS := -I/path tp/OpenCV-2.4.10-android-sdk/sdk/native/jni/include -Wall -Werror
LOCAL_SRC_FILES := \ all my cpp files
LOCAL_C_INCLUDES += /path to/src/main/jni
LOCAL_C_INCLUDES += /path to/src/debug/jni
LOCAL_C_INCLUDES += /path to/OpenCV-2.4.10-android-sdk/sdk/native/jni/include
LOCAL_STATIC_LIBRARIES := /path to/OpenCV-2.4.10-android-sdk/sdk/native/libs/armeabi-v7a/libopencv_core.a
LOCAL_LDLIBS += -llog -ldl
include $(BUILD_SHARED_LIBRARY)
然后我在终端中使用此代码来构建共享库(.so)
/path/to/android-ndk/ndk-build NDK_PROJECT_PATH=/path/to/project APP_BUILD_SCRIPT=/path/to/Android.mk NDK_OUT=/path/to/project/module/build/intermediates/ndk/debug/obj NDK_LIBS_OUT=/path/to/project/module/build/intermediates/ndk/debug/lib APP_STL=stlport_static APP_ABI=armeabi-v7a
之后我使用gradle的汇编(debug)创建一个包含java代码和共享库的aar文件