Android Studio + Experimental Gradle Plugin + NDK + OpenCV: mostrando errores en opencv include statement
Estoy integrando la biblioteca opencv con mi proyecto. He configurado con éxito NDK utilizando experimental gradle plugin. Pero conseguir el error con Opencv. Aquí está el error que aparece en mi archivo cpp.
- ¿Se puede utilizar un android.hardware.camera2.CaptureRequest con OpenCV?
- Uso de OpenCV en Java Camera2 API
- Cómo detectar los límites de una página de pasaporte con OpenCV?
- Cómo configurar la cámara de OpenCV para mostrar la vista previa tanto en orientación vertical como en pantalla completa
- ClassNotFoundException: android.hardware.camera2.CameraAccessException con OpenCV 3.1.0
Mi build.gradle es:
apply plugin: 'com.android.model.application' model { android { compileSdkVersion = 23 buildToolsVersion = "23.0.0" defaultConfig.with { applicationId = "com.legalplex.dharani.android" minSdkVersion.apiLevel = 14 targetSdkVersion.apiLevel = 23 buildConfigFields.with { create() { type = "int" name = "VALUE" value = "1" } } } } android.ndk { moduleName = "document_scanner" cppFlags += "-fno-rtti" cppFlags += "-fno-exceptions" ldLibs = ["android", "log"] stl ="gnustl_shared" } android.buildTypes { release { minifyEnabled = false proguardFiles += file('proguard-rules.pro') } } android.productFlavors { // for detailed abiFilter descriptions, refer to "Supported ABIs" @ // https://developer.android.com/ndk/guides/abis.html#sa create("arm") { ndk.abiFilters += "armeabi" } create("arm7") { ndk.abiFilters += "armeabi-v7a" } create("arm8") { ndk.abiFilters += "arm64-v8a" } create("x86") { ndk.abiFilters += "x86" } create("x86-64") { ndk.abiFilters += "x86_64" } create("mips") { ndk.abiFilters += "mips" } create("mips-64") { ndk.abiFilters += "mips64" } // To include all cpu architectures, leaves abiFilters empty create("all") } } dependencies { compile 'com.android.support:support-v4:19.1.0' compile project(':openCVLibrary') }
¿Por qué está mostrando error en opencv incluye incluso después de añadir la dependencia del módulo en mi archivo gradle. Por favor, ayúdame. Cómo configurar mi archivo build.gradle para activar nuestro propio Android.mk. Aquí está mi archivo Android.mk:
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) include OpenCV-2.4.10-android-sdk\sdk\native\jni\OpenCV.mk OPENCV_INSTALL_MODULES := on LOCAL_MODULE := document_scanner LOCAL_SRC_FILES := jni_part.cpp LOCAL_C_INCLUDES := OpenCV-2.4.10-android-sdk\sdk\native\jni\include OPENCV_LIB_TYPE:=STATIC LOCAL_LDLIBS += -llog include $(BUILD_SHARED_LIBRARY)
- Explorador de documentos Android con opencv
- Detección de objetos con OpenCV SVM
- ¿Es posible hacer zoom y enfocar usando OpenCV en Android?
- OpenGL ES 2 no funciona en Android API23
- Error: el paquete android.hardware.camera2 no existe OpenCV
- No se encontró el paquete de la biblioteca OpenCV
- OpenCV se bloquea después de un corto período de tiempo en la aplicación para Android
- Comparar imágenes SIFT / SURF detalles en archivos .yml OpenCV?
Usted debe a) habilitar ndk-build, y b) deshabilitar plugin ndk. El código siguiente está ajustado para Mac, en Windows se necesita ndk-build.cmd
:
task buildNative(type: Exec, description: 'Compile JNI source via NDK') { def ndkDir = android.ndkDirectory commandLine "$ndkDir/ndk-build" } buildNative.onlyIf { def ndkDir = android.ndkDirectory file("$ndkDir/ndk-build").exists() } task cleanNative(type: Exec, description: 'Clean JNI object files') { def ndkDir = android.ndkDirectory commandLine "$ndkDir/ndk-build", 'clean' } cleanNative.onlyIf { def ndkDir = android.ndkDirectory file("$ndkDir/ndk-build").exists() } clean.dependsOn 'cleanNative' tasks.withType(JavaCompile) { compileTask -> compileTask.dependsOn buildNative } defaultConfig.ndk { moduleName "pexeso-android-mobile" } tasks.all { task -> if (task.name.contains('compileDebugNdk') || task.name.contains('compileReleaseNdk')) task.enabled = false }
ACTUALIZAR enfoque similar funciona con el complemento experimental , vea definir LOCAL_SRC_FILES en ndk {} DSL .