2013-03-02 70 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");