¿Cómo usar las variables gradle en Android.mk?

Por favor, me gustaría saber cómo usar una variable definida desde el gradle en el file Android.mk o de todos modos hay que pasar alguna variable de gradle a Android.mk?

Sé que esta es una pregunta que parece extraña, pero probé con muchas posibilidades y no funcionó.

De hecho, estoy trabajando en un proyecto de queueboración con compañeros de class y utilizamos OpenCV y otro tipo de biblioteca. El problema es que la mayoría de estas bibliotecas tienen routes que varían según la computadora del desarrollador. Entonces, dado que estamos usando git, hay conflictos constantes en estos files.

Para resolver el problema, primero uso las variables de entorno en el file /etc/profile.d/my_proj.sh , y no funcionó. Así que creé un file de properties en el que puse todas estas routes y escribí una function para leer el file y get esos valores en el file build.gradle. Ahora me gustaría saber cómo compartir esas variables con el file Android.mk .

Aquí estoy compartiendo mi código contigo. La function en build.gradle .

 apply plugin: 'com.android.library' import org.apache.tools.ant.taskdefs.condition.Os def Properties props = new Properties() def propFile = file('/etc/profile.d/my_proj.properties') //pay attention to the path def opencvRoot; if (propFile.canRead()){ props.load(new FileInputStream(propFile)) println(props) if (props!=null && props.containsKey('OPENCVROOT')) { opencvRoot = props['OPENCVROOT'] println("opencvRoot = ${opencvRoot}") }else{ println("Doesn't contains opencvRoot = ${opencvRoot}") } }else{ println("I can't read opencvRoot = ${opencvRoot}") } android { compileSdkVersion versionCompiler buildToolsVersion versionBuildTool defaultConfig { minSdkVersion 18 targetSdkVersion versionTarget versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" externalNativeBuild { ndkBuild { arguments "OPENCV_ROOT:=${opencvRoot}" } } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } sourceSets { main { jniLibs.srcDir 'src/main/libs' jni.srcDirs = [] } } } 

El file Android.mk

 LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) #opencv OPENCVROOT := $(OPENCV_ROOT) # This doesn't work # OPENCVROOT:= /home/username/OpenCV-android-sdk OPENCV_CAMERA_MODULES:=on OPENCV_INSTALL_MODULES:=on OPENCV_LIB_TYPE:=SHARED include ${OPENCVROOT}/sdk/native/jni/OpenCV.mk 

Realmente apreciaria cualquier ayuda !