我在 Android 上构建了一个 JNI 应用程序,并且在共享对象中有一些代码。不幸的是,我的共享对象给了我错误,我想检查错误发生在哪里。我想添加日志行来做同样的事情。但是,如果我使用 __android_log_write() 进行日志记录,它不会出现在 logcat 中。我还有什么其他选择,或者有没有办法做到这一点?如果这个问题已经回答了,请指向我的链接。我的搜索没有给我带来相关的结果。
谢谢。
我在 Android 上构建了一个 JNI 应用程序,并且在共享对象中有一些代码。不幸的是,我的共享对象给了我错误,我想检查错误发生在哪里。我想添加日志行来做同样的事情。但是,如果我使用 __android_log_write() 进行日志记录,它不会出现在 logcat 中。我还有什么其他选择,或者有没有办法做到这一点?如果这个问题已经回答了,请指向我的链接。我的搜索没有给我带来相关的结果。
谢谢。
我在本机代码中编写了一个辅助类来轻松记录日志。每种详细类型都有一个宏。这是 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");