Gradle NDK para especificar una directiva 'include' en Android.mk generado

Cuando tengas

android { defaultConfig { ndk { moduleName "yourlib" stl "stlport_static" ldLibs "log", "z", "m" cFlags "-I/some/include/dir/" } ... } ... } 

En su build.gradle entonces Gradle compilará los archivos en src / main / jni / y generará un Android.mk en build / ndk / debug / Android.mk.

Sin embargo, en mi caso, estoy tratando de compilar algunos archivos C ++ compilados contra OpenCV.

Tengo esto funcionando cuando creo manualmente el archivo Android.mk y ejecuto el comando ndk-build. Pero quiero hacerlo a través de Gradle / Android Studio automáticamente.

Al hacer esto manualmente, incluyo las bibliotecas para vincularlas. Hago esto, en el Android.mk creado manualmente, con la línea:

 include /path/to/the/opencv/directory/sdk/native/jni/OpenCV.mk 

Sin embargo, en el complemento Gradle de Android, no estoy seguro de cómo añadir esta directiva 'include' en el archivo Android.mk generado.

¿Puede alguien apuntarme en la dirección correcta de Gradle-directiva para agregar esta línea al archivo de generar? Gracias.

He descubierto que el proceso de compilación tirará de todo debajo de la carpeta ./src/main/jni. Por lo tanto, he colocado enlaces simbólicos allí para incluir y las carpetas src en otro lugar – los archivos src se enumerarán en el archivo .mk por el proceso de construcción y los archivos inc serán recogidos por el compilador. Tal vez es un poco hacky:

 android { defaultConfig { ndk { moduleName "yourlib" cFlags "-std=c99 -I${project.buildDir}/../src/main/jni/inc" } ... } ... } 

También tengo cFlags diferentes dependiendo de la compilación de depuración. Esto parece ser gradle válido, pero no quiere construir con android-studio. Se construirá con el comando gradlew tho:

 android { defaultConfig { ndk { moduleName "yourlib" cFlags "-std=c99 -I${project.buildDir}/../src/main/jni/inc" } ... } ... buildTypes { release { debuggable false jniDebugBuild false ndk { moduleName "yourlib" } } debug { debuggable true jniDebugBuild true ndk { moduleName "yourlib" ldLibs "log" cFlags "-g -D_DEBUG" } } } } 

Espero que pueda ayudarte (android-studio 0.8.6).

  • ¿Cómo puedo usar OpenCV con imágenes almacenadas, sin una cámara?
  • Mat to Bitmap en el archivo jni cpp de Android
  • Visión por computadora y bibliotecas AR disponibles para Android?
  • OpenCV con Android NDK Referencias indefinidas
  • Visualización de imagen de mapa de bits en Android (OpenCV)
  • Objeto perfecto para ser reconocido con OpenCV
  • Android Studio, Gradle, OpenCV y NDK
  • Prueba de unidad de Android para la vista previa de la cámara?
  • Cómo obtener el objeto Mat desde el byte en openCV android?
  • Substracción de fondo de OpenCV Android
  • Falló la aserción de OpenCV nMatToBitmap
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.