2013-03-02 68 views
0

我在Android上構建了一個JNI應用程序,並且我在共享對象中有一些代碼。不幸的是,我的共享對象給我錯誤,我想檢查它發生的錯誤究竟在哪裏。我想添加日誌行來做同樣的事情。但是,如果我使用__android_log_write()執行日誌,它不會出現在logcat中。我還有哪些其他選擇,或者有什麼方法可以實現這一點?如果這個問題已經得到解答,請將我指向鏈接。我的搜索沒有給我相關的結果。Android JNI應用程序:從共享對象中記錄

謝謝。

回答

0

我寫了一個輔助類來輕鬆地在本機代碼中記錄日誌。每種冗長的類型都有一個宏。這是Log.h文件:

#ifndef LOG_H_ 
#define LOG_H_ 

#include <android/log.h> 

#define LOGD(LOG_TAG, ...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__) 
#define LOGI(LOG_TAG, ...) __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__) 
#define LOGV(LOG_TAG, ...) __android_log_print(ANDROID_LOG_VERBOSE, LOG_TAG, __VA_ARGS__) 
#define LOGW(LOG_TAG, ...) __android_log_print(ANDROID_LOG_WARN, LOG_TAG, __VA_ARGS__) 
#define LOGE(LOG_TAG, ...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__) 

#endif /* LOG_H_ */ 

然後你就可以在你的課程包括「Log.h」,並使用這種方式:

LOGI("YourClassTag","let's print some stuff: %i, %s", 4, "I'm a string");