【发布时间】:2017-03-19 18:42:43
【问题描述】:
我正在使用 Android Studio 2.3 并遇到致命错误:找不到“opencv2/core/core.hpp”文件
我看到很多类似的问题不是构建 Android.mk,但我的 Android.mk 应该已经构建了。
如果在Android.mk中更改OpenCV.mk的包含路径会报文件未找到错误,所以我认为Android.mk已经包含在构建过程中并且文件路径是正确的。
如果包含路径正确,OpenCV.mk 应该会找到文件夹 opencv2 但我仍然收到文件未找到错误。
还有其他方法可以在 Android Studio 中设置包含路径吗?
我的构建脚本有什么问题?
native-lib.cpp
#include <DetectionBasedTracker.h>
#include <opencv2/core/core.hpp>
#include <opencv2/contrib/detection_based_tracker.hpp>
Android.mk
LOCAL_PATH := $(call my-dir)
OPENCV_CAMERA_MODULES:=off
OPENCV_INSTALL_MODULES:=on
OPENCV_LIB_TYPE:=SHARED
include $(LOCAL_PATH)/../../../../../../../../OpenCV-android-sdk/sdk/native/jni/OpenCV.mk
LOCAL_C_INCLUDES+=$(LOCAL_PATH)/../../../../../../../../OpenCV-android-sdk/sdk/native/jni/include/
LOCAL_SRC_FILES := native-lib.cpp
LOCAL_LDLIBS += -llog -ldl
LOCAL_MODULE:= native-lib
include $(BUILD_SHARED_LIBRARY)
应用程序.mk
APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -fexceptions
APP_ABI := armeabi armeabi-v7a arm64-v8a
build.gradle
android {
......
......
sourceSets.main {
jni.srcDirs = [] //disable automatic ndk-build call
}
task ndkBuild(type: Exec, description: 'Compile JNI source via NDK') {
commandLine 'F:\\Android_SDK\\ndk-bundle\\ndk-build.cmd',
'-C', file('src\\main\\jni').absolutePath,
'NDK_DEBUG=1',
'V=1'
}
tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn ndkBuild
}
}
文件结构如下
app/src/main/jni/Android.mk
app/src/main/jni/Application.mk
app/src/main/jni/native-lib.cpp
app/build.gradle
【问题讨论】:
标签: android c++ android-studio opencv