2017-03-19 4 views
1
Datei

Ich bin mit Android Studio 2.3 und fatale Fehler: 'opencv2/core/core.hpp' Datei nicht gefundenAndroid Studio 'opencv2/core/core.hpp' nicht gefunden

sah ich viele ähnliche Probleme, die baue Android.mk nicht, aber mein Android.mk sollte schon gebaut sein.

Wenn die Änderung Pfad von OpenCV.mk in Android.mk enthalten wird Bericht Datei nicht gefunden Fehler, so denke ich, dass Android.mk ist bereits in Build-Prozess enthalten und Dateipfad ist korrekt.

Wenn Include-Pfad korrekt ist, sollte OpenCV.mk den Ordner opencv2 finden, aber ich bekomme immer noch Datei nicht gefunden Fehler.

Gibt es eine andere Möglichkeit, den Include-Pfad in Android Studio festzulegen?

Was ist falsch in meinem Build-Skript?

mutter 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 
     } 
} 

Dateistruktur wie unten

app/src/main/jni/Android.mk 
app/src/main/jni/Application.mk 
app/src/main/jni/native-lib.cpp 
app/build.gradle 

Antwort

0

Haben Sie OpenCV-Bibliothek als Modul importieren und Können Sie versuchen, wie dies in Android.mk Datei

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 unter Befehlszeile Sie können so hinzufügen,

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' 
+0

Ja, OpenCVLibrary320 wird in project_structure-> Abhängigkeiten Th importiert e scope is compile Es tut mir leid für die hässliche android.mk ich zur Verfügung gestellt, nach Änderung Android.mk und build.gradle wie vorgeschlagen immer noch nicht funktionieren. –

+0

native-lib.so erfolgreich generiert, wenn Sie direkt ausführen, ndk-build.cmd mit Parametern im Projektordner, aber in Android Studio immer noch "fataler Fehler: 'opencv2/core/core.hpp' Datei nicht gefunden" –

+0

Nach der Installation von Opencv, Überprüfen Sie, ob Sie das installierte Verzeichnis in der Umgebungsvariable ** Pfad ** des Systems angegeben haben. – Gowthaman

Verwandte Themen