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).

  • Error que coincide con ORB en Android
  • ¿Debo usar JavaCV o la biblioteca Java de OpenCV en Android?
  • Cómo obtener GNU C en las preferencias
  • ¿Cuál es la mejor manera de hacer el reconocimiento de números básicos?
  • Android OpenCV: dibujo de partidos con feature2d
  • Cortar la imagen después de seleccionar el área mediante la detección de bordes en android
  • Cambiar el color de un objeto en una aplicación de Android
  • ¿Cómo realizar el recorte automático para el documento Reconocer la imagen con la cámara?
  • ¿Cómo empaquetar y vincular OpenCV binares y OpenCV Java SDK para Android Studio?
  • Android Paper Detection con OpenCV
  • ¿Quieres encontrar la longitud focal primero entonces la distancia de la cara detectada en tiempo real utilizando opencv android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.