Невозможно включить заголовки opencv в Android Studio

Я включил собственный OpenCV 3.0 в Android Studio, как объяснено здесь.

Android.mk:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

#opencv 
OPENCVROOT:= D:/OpenCV-android-sdk_3 
OPENCV_CAMERA_MODULES:=on 
OPENCV_INSTALL_MODULES:=on 
OPENCV_LIB_TYPE:=STATIC 
include ${OPENCVROOT}/sdk/native/jni/OpenCV.mk 
include $(OPENCV_MK_PATH)

LOCAL_C_INCLUDES += $(LOCAL_PATH)

LOCAL_SRC_FILES := main.cpp 
LOCAL_LDLIBS += -llog -ldl 
LOCAL_MODULE := hello

include $(BUILD_SHARED_LIBRARY)

Приложение.mk:

APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -fexceptions
APP_ABI := all
APP_PLATFORM := android-19

Для компиляции NDK я создал внешний инструмент, вызывающий ndk-build.cmd со следующими параметрами:

NDK_PROJECT_PATH=$ModuleFileDir$/build/intermediates/ndk NDK_LIBS_OUT=$ModuleFileDir$/src/main/jniLibs NDK_APPLICATION_MK=$ModuleFileDir$/src/main/jni/Application.mk APP_BUILD_SCRIPT=$ModuleFileDir$/src/main/jni/Android.mk V=1

Проблема:

Я до сих пор не могу включить какой-либо заголовок opencv, например

#include <opencv2/core/core.hpp

он всегда остается красным. Прочитал много других тем, но решения не нашел. Что мне не хватает?

Я использую Windows 7 64bit.

Заранее спасибо!

ИЗМЕНИТЬ:

Теперь я включил OpenCV в качестве модуля и реализовал экспериментальную градацию следующим образом:

apply plugin: 'com.android.model.application'

model {
    android {
        compileSdkVersion = 19
        buildToolsVersion = "23.0.2"

        defaultConfig {
            applicationId = "..."
            minSdkVersion = 16
            targetSdkVersion = 19
            versionCode = 1
            versionName = "1.0"

        }
    }

    android.ndk{
        moduleName = "openCVLibrary300"
        ldLibs += ['log']
        cppFlags += "-std=c++11"
        cppFlags += "-fexceptions"
        cppFlags  += "-I${file("D:\\OpenCV-android-sdk_3\\sdk\\native\\jni\\include")}".toString()
        cppFlags  += "-I${file("D:\\OpenCV-android-sdk_3\\sdk\\native\\jni\\include\\opencv")}".toString()



//        ldFlags += linkOpt
        ldLibs += ["android", "EGL", "GLESv2", "dl", "log", "z"]// , "ibopencv_core"
        stl = "gnustl_shared"//"gnustl_static"//"gnustl_shared"//"stlport_static"
    }

    android.buildTypes {
        release {
            minifyEnabled = false
            proguardFiles += file('proguard-rules.pro')
        }
    }

    android.productFlavors {
        create("arm") {
            ndk.with {
                abiFilters += "armeabi"

                File curDir = file('./')
                curDir = file(curDir.absolutePath)
                String libsDir = curDir.absolutePath+"\\src\\main\\jniLibs\\armeabi\\" //"-L" +

                ldLibs += libsDir + "libopencv_core.a"
                ldLibs += libsDir + "libopencv_core.a"
                ldLibs += libsDir + "libopencv_highgui.a"
                ldLibs += libsDir + "libopencv_imgproc.a"
                ldLibs += libsDir + "libopencv_ml.a"
                ldLibs += libsDir + "libopencv_ts.a"

            }
        }
        create("armv7") {
            ndk.with {
                abiFilters += "armeabi-v7a"

                File curDir = file('./')
                curDir = file(curDir.absolutePath)
                String libsDir = curDir.absolutePath+"\\src\\main\\jniLibs\\armeabi-v7a\\" //"-L" +

                ldLibs += libsDir + "libopencv_core.a"
                ldLibs += libsDir + "libopencv_core.a"
                ldLibs += libsDir + "libopencv_highgui.a"
                ldLibs += libsDir + "libopencv_imgproc.a"
                ldLibs += libsDir + "libopencv_ml.a"
                ldLibs += libsDir + "libopencv_ts.a"

            }
        }
        create("x86") {
            ndk.with {
                abiFilters += "x86"
            }
        }
        create("mips") {
            ndk.with {
                abiFilters += "mips"
            }
        }
        create("fat") {

        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:19.1.0'
    compile project(':openCVLibrary300')
}

Теперь я продолжаю получать эту необъявленную ошибку:

Error:Cause: com.android.build.gradle.managed.AndroidConfig_Impl

Согласно google, это может быть проблема с синтаксисом, но я не могу ее решить.


person AKNOT    schedule 07.01.2016    source источник
comment
Ваша установка хороша для компиляции вашего модуля; для настоящей интеграции с Android Studio см., например. stackoverflow.com/questions/32171259/   -  person Alex Cohn    schedule 08.01.2016
comment
Спасибо за подсказку, я думал, что это больше не нужно из-за того, что я уже сделал. ХОРОШО. Но, к сожалению, способ, описанный в вашей ссылке, у меня не работает. Он уже не включает «com.android.model.application», его невозможно найти. Хотя я не уверен, что подразумевается под build.gradle (модулем), одним из модулей opencv300, который я сейчас добавил? Для меня это не имеет смысла, но я новичок в Android Studio и Gradle. Кстати, я использую версию 1.5.1. Не могли бы вы поподробнее? К сожалению, я не могу не комментировать тему, на которую вы ссылаетесь. Спасибо!   -  person AKNOT    schedule 10.01.2016
comment
В предоставленной мной ссылке используется experimental Плагин Gradle.   -  person Alex Cohn    schedule 10.01.2016
comment
Ах, это помогло... но я все еще получаю диффузную ошибку (см. редактирование), у вас есть идея?   -  person AKNOT    schedule 10.01.2016
comment
Если в файле build.gradle верхнего уровня используется classpath "com.android.tools.build:gradle-experimental:0.4.0" или выше, синтаксис += больше не поддерживается. Вместо этого вам нужен .add().   -  person Alex Cohn    schedule 11.01.2016
comment
Хорошо, я использовал более раннюю версию, но обновил ее до 0.4.0 и внес предложенные вами изменения. Ошибка сохранилась, но исчезла после перезапуска Android Studio. Спасибо за помощь!   -  person AKNOT    schedule 23.01.2016
comment
При переключении версий плагина необходимо, но иногда недостаточно перезапустить AS. Возможно, потребуется восстановить все.   -  person Alex Cohn    schedule 23.01.2016