J'ai besoin de mettre un drapeau dans Android.mk
qui indique au code C s'il est en mode débogage ou non.
LOCAL_MODULE := auth
LOCAL_SRC_FILES := auth.c
LOCAL_CFLAGS := -DDEBUG_MODE=0
LOCAL_EXPORT_CFLAGS := $(LOCAL_CFLAGS)
LOCAL_LDLIBS := -llog
LOCAL_C_INCLUDES := auth.h
include $(BUILD_SHARED_LIBRARY)
Le problème est que j'oublie souvent de modifier la valeur lors de la création d'une version et vice-versa. J'attends donc avec impatience une méthode qui le fasse automatiquement.
J'ai essayé de changer Android.mk
à :
LOCAL_CFLAGS := -DDEBUG_MODE
Et a changé le build.gradle
à ce qui suit :
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
minSdkVersion 16
targetSdkVersion 25
}
buildTypes {
release {
debuggable false
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
ndk {
cFlags = " -DDEBUG_MODE=0 "
}
}
debug {
debuggable true
minifyEnabled false
shrinkResources false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
ndk {
cFlags = " -DDEBUG_MODE=1 "
}
}
}
sourceSets.main {
jni.srcDirs = ['src/main/none']
jniLibs.srcDirs = ["src/main/libs"]
}
externalNativeBuild {
ndkBuild {
path 'src/main/jni/Android.mk'
}
}
return void
}
Ce n'était pas suffisant, le drapeau ne change pas en fonction du type de construction. J'ai trouvé peu d'informations à ce sujet et le code ci-dessus est le résultat de ce que j'ai lu sur internet. Avez-vous une suggestion sur la façon de le faire fonctionner correctement ?