【发布时间】:2017-05-20 10:49:08
【问题描述】:
我需要在 Android.mk 文件中设置一个标志,告诉 C 代码它是否处于调试模式。
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)
问题是我在构建版本时经常忘记更改值,反之亦然,所以我期待一种自动完成的方法。
我尝试将Android.mk 更改为:
LOCAL_CFLAGS := -DDEBUG_MODE
并将build.gradle 更改为以下内容:
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
}
这还不够,标志不会根据构建类型而改变。我发现很少有这方面的信息,上面的代码是我在互联网上阅读的结果。 您对如何使其正常工作有什么建议吗?
【问题讨论】:
标签: android android-ndk android-gradle-plugin build.gradle