I am using Android Studio 2.3 and get fatal error: 'opencv2/core/core.hpp' file not found
I saw many similar issues that are not build Android.mk, but my Android.mk should already built.
If change include path of OpenCV.mk in Android.mk it will report file not found error, so I think Android.mk is already included in build process and file path is correct.
If include path is correct, OpenCV.mk should find folder opencv2 but I still get file not found error.
Is there any other way to set include path in Android Studio?
What's wrong in my build script?
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)
Application.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
}
}
file structure as below
app/src/main/jni/Android.mk
app/src/main/jni/Application.mk
app/src/main/jni/native-lib.cpp
app/build.gradle
Did you import OpenCV Library as a module and Can you try like this in Android.mk file
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
#opencv
OPENCVROOT:= F:/Android/Libs/OpenCV
OPENCV_CAMERA_MODULES:=on
OPENCV_INSTALL_MODULES:=on
OPENCV_LIB_TYPE:=SHARED
include ${OPENCVROOT}/sdk/native/jni/OpenCV.mk
LOCAL_SRC_FILES := native-lib.cpp
LOCAL_LDLIBS += -llog
LOCAL_MODULE := MyOpenCVLibs
include $(BUILD_SHARED_LIBRARY)
In build.gradle under command line you can add like this,
commandLine "F:\\Android\\NDK\\android-ndk-r14\\build\\ndk-build.cmd",
'NDK_PROJECT_PATH=build/intermediates/ndk',
'NDK_LIBS_OUT=src/main/jniLibs',
'APP_BUILD_SCRIPT=src/main/jni/Android.mk',
'NDK_APPLICATION_MK=src/main/jni/Application.mk'
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.