【问题标题】:how to use opencv in android studio in native c++ code如何在原生 C++ 代码中在 android studio 中使用 opencv
【发布时间】:2015-03-11 18:41:39
【问题描述】:
如何在 android studio 的项目中使用 openCV - 但我需要在其他原生 cpp 文件中使用它,而不是在 java 中。
我找到的所有指南和教程都解释了如何在 java 文件中使用 openCV (loadLibrary..)
例如this 和this
最终我在 jniLibs 文件夹中拥有所有 .so 或将 openCV 添加为具有依赖关系的模块,
但我是什么“#include ..”?
我怎么可能得不到
错误:'cv' 不是命名空间名称
为
使用命名空间 cv;
? (当然还有其他 openCV 代码……)
非常感谢!
【问题讨论】:
标签:
opencv
android-studio
【解决方案1】:
我终于成功了:
我创建了自己的 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 的 assemble(debug) 创建一个包含 java 代码和共享库的 aar 文件