我在Android上构建了一个JNI应用程序,我在共享对象中有一些代码。不幸的是,我的共享对象给了我错误,我想检查其中发生错误的确切位置。我想添加日志行来做同样的事情。但是,如果我使用__android_log_write()进行日志记录,则它不会出现在logcat中。我还有其他选择,或者有没有办法实现这一目标?如果已经回答了这个问题,请指出链接。我的搜索没有给我相关的结果。
感谢。
答案 0 :(得分: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");