如何在Android框架中使用打印日志消息

如何在Android框架中使用打印日志消息,android,java-native-interface,logging,native-code,mediarecorder,Android,Java Native Interface,Logging,Native Code,Mediarecorder,我正在尝试打印核心Android框架文件中的日志消息。例如,我尝试在frameworks\base\media\libmediaplayerservice\下的MediaRecorderClient.cpp中记录消息。我尝试了LOGV,LOGE,LOGD,printf,以及\uuu android\ulog\uprint,但都没有成功 我应该使用哪个命令打印日志消息?应该使用日志,但它将打印到logcat而不是系统打印 例如: Log.d("filter", example text); //

我正在尝试打印核心Android框架文件中的日志消息。例如,我尝试在
frameworks\base\media\libmediaplayerservice\
下的
MediaRecorderClient.cpp
中记录消息。我尝试了
LOGV
LOGE
LOGD
printf
,以及
\uuu android\ulog\uprint
,但都没有成功


我应该使用哪个命令打印日志消息?

应该使用日志,但它将打印到logcat而不是系统打印

例如:

Log.d("filter", example text); // filter is any tag you want to use as filter

您可以在eclipse中从窗口show view->other->android->logcat打开logcat,而且您似乎只能将char*传递给JNI日志方法。因此,如果调试字符串中有数字,则必须将它们放入字符缓冲区(使用sprintf)。

您会收到什么样的错误?如果它没有编译,请确保在Android.mk中也包含了:

LOCAL_LDLIBS := -llog

如果它进行编译但不产生任何输出,那么,就像@Warpzit所说的,您必须查看logcat才能查看您的消息。

/system/core/include/cutils/log.h
定义了用于在Android框架中登录的宏

因此,您可以取消注释源文件顶部的
#define LOG\u NDEBUG 0
行,它将启用详细日志记录。您需要重新编译整个库并将其放入您的android system.img构建中

我相信宏调用是ALOGV、ALOGE等

这与另一个答案类似:

首先声明字符串

Private String Tag = getClass().getsimplename();
而不是你的方法

 Log.d(Tag,"This is my oncreate method");

很抱歉我最初的问题,但我应该使用哪个日志命令?我试着用LOGE/LOGV/LOGD查看logcat,但没有显示我的消息..应该使用android\u log\u print()。