Android JNI应用程序:从共享对象进行日志记录

时间:2013-03-02 01:14:37

标签: android android-ndk java-native-interface

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

感谢。

1 个答案:

答案 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");