3
開啓/關閉本地日誌貓NDK我用這個代碼片段打開登錄或註銷如何在運行時
#define DEBUG 1
#if DEBUG
#include <android/log.h>
#define LOG_TAG "native_log"
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__)
#else
# define LOGD(...) do {} while (0) // do nothing
#endif
// use it
LOGD("%s : %d","value", val);
它工作得很好輪流DEBUG
標誌的開/關。問題是我想在java端運行時做到這一點。我想是這樣的:
// java
private native void nativeSetDebug(boolean flag);
// jni
JNIEXPORT void JNICALL Java_com_my_package_Native_nativeSetDebug(JNIEnv *env, jobject thiz, jboolean flag){
// what should I do in this method?
}
由於++由預處理源文件編譯甚至代替以前由他們的價值在C宏,所以我在尋找另一種方法。有什麼想法嗎?
使用函數而不是宏。或者在其中使用一個帶有if語句的多行宏,並讓jni函數設置一個布爾變量的值。 –
@GabeSechan你能回答一個例子嗎?因爲我不知道該怎麼做。 – R4j