2017-03-19 22 views
1

を見つけていない私は、Android Studioの2.3を使用していますが、致命的なエラーを取得:「opencv2 /コア/ core.hpp」ファイルがのAndroid Studioの「opencv2 /コア/ core.hpp」ファイルが

を発見していない私は、多くの同様の問題を見てAndroid.mkはビルドされていませんが、Android.mkはすでにビルド済みです。

Android.mkにOpenCV.mkのパスを変更すると、ファイルが見つかりませんというエラーが表示されるので、Android.mkは既にビルドプロセスに含まれていて、ファイルパスは正しいと思います。

includeパスが正しい場合、OpenCV.mkはopencv2フォルダを見つけるはずですが、まだファイルが見つかりませんというエラーが表示されます。

Android Studioに他のパスを設定する方法はありますか?

ビルドスクリプトで何が問題になっていますか?

ネイティブ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 
     } 
} 

ファイル構造として

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

答えて

0

は、モジュールとしてのOpenCVライブラリをインポートすると、コマンドラインの下build.gradleでファイル

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) 

にAndroid.mkに、このようにしてみてくださいすることができなかった下記このように追加することができます

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

はい、OpenCVLibrary320はproject_structure-> dependencies番目にインポートされますスコープがコンパイルされています 私が提供している醜いandroid.mkには申し訳ありませんが、変更後はAndroid.mkとbuild.gradleはまだ動作しません。 –

+0

プロジェクトフォルダ内のパラメータでndk-build.cmdを直接実行すると正常に生成されますが、Android Studioでは "opencv2/core/core.hpp 'ファイルが見つかりません"という致命的なエラーが発生します –

+0

Opencvをインストールした後、システムの環境変数** Path **にインストールされているディレクトリがあることを確認してください。 – Gowthaman

関連する問題