简体   繁体   中英

OpenCV opencv2/core/core.hpp: No such file or directory

I'm creating a small project to test the opencv (2.4) on Android Studio 1.4 but when I try execute the app I have one problem with the NDK compiler. I think that the cpp files can't find the path to opencv but I dont know why.

Any ideia how to fix this problem??

Error:

/home/User/AndroidStudioProjects/OpenCV/app/src/main/jni/native_processing.h Error:(10, 33) opencv2/core/core.hpp: No such file or directory

JNI:

OpenCV/app/src/main/jni/native_processing.cpp

OpenCV/app/src/main/jni/native_processing.h

#ifndef OPENCV_SAMPLE_NATIVE_PROCESSING_H
#define OPENCV_SAMPLE_NATIVE_PROCESSING_H

#include <jni.h>

#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/features2d/features2d.hpp>
#include <vector>

extern "C" {
JNIEXPORT void JNICALL      Java_com_projeto_opencv_MainActivity_FindFeatures(JNIEnv *, jobject,
                                                                                 jlong addrGray,
                                                                                 jlong addrRgba);
 }
 #endif

Android.mk

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
OPENCV_CAMERA_MODULES:=on
OPENCV_INSTALL_MODULES:=on
OPENCV_LIB_TYPE:=STATIC


PENCV_CAMERA_MODULES:=on
OPENCV_INSTALL_MODULES:=on
OPENCV_LIB_TYPE:=SHARED
include /home/User/AndroidStudioProjects/OpenCV/OpenCV-android-sdk2/sdk/native/jni/OpenCV.mk

LOCAL_C_INCLUDE :=/home/User/Download/OpenCV-android-sdk2/sdk/native/jni/include
LOCAL_SRC_FILES := native_processing.cpp
LOCAL_LDLIBS +=  -llog -ldl
LOCAL_MODULE:= native_test


include $(BUILD_SHARED_LIBRARY)

Error: Warning:Native C/C++ source code is found, but it seems that
NDK option is not configured.  Note that if you have an Android.mk, it is
not used for compilation.  The recommended workaround is to remove the
default jni source code directory by adding:

 android {
    sourceSets {
        main {
            jni.srcDirs = []
        }
    }
}    

to build.gradle, manually compile the code with ndk-build, and then
place the resulting shared object in src/main/jniLibs.
/home/User/AndroidStudioProjects/OpenCV/app/src/main/jni/native_processing.cpp
Information:(1) (Unknown) In file included
/home/User/AndroidStudioProjects/OpenCV/app/src/main/jni/native_processing.h
Error:(10, 33) opencv2/core/core.hpp: No such file or directory
compilation terminated.
make: ***
 [/home/User/AndroidStudioProjects/OpenCV/app/build/intermediates/ndk/debug/obj/local/arm64-v8a/objs/app//home/geison/AndroidStudioProjects/OpenCV/app/src/main/jni/native_processing.o] Error 1
:app:compileDebugNdk FAILED
Error:Execution failed for task ':app:compileDebugNdk'.
com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/home/User/Android/Sdk/ndk-bundle/ndk-build'' finished with non-zero exit value 2

comment out the following from build.gradle (if it is there):

externalNativeBuild {
        cmake {
            path "CMakeLists.txt"
        }
    }

Add this to gradle:

sourceSets.main {
    jni.srcDirs = [] //disable automatic ndk-build call
}

Have you tried only #include <opencv2/core.hpp> (instead of #include <opencv2/core/core.hpp> )? That worked for me (ubuntu 14.04 and opencv 2.4).

The included OpenCV.mk defines the include paths for you, so don't try to redefine it again after Include . Also, you probably prefer OPENCV_LIB_TYPE:=STATIC , so cleanup the Android.mk file a bit:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
OPENCV_CAMERA_MODULES:=on
OPENCV_LIB_TYPE:=STATIC
include /home/User/AndroidStudioProjects/OpenCV/OpenCV-android-sdk2/sdk/native/jni/OpenCV.mk

LOCAL_SRC_FILES := native_processing.cpp
LOCAL_LDLIBS +=  -llog -ldl
LOCAL_MODULE:= native_test

include $(BUILD_SHARED_LIBRARY)

Do you really use the camera modules?

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM