4

我正在尝试在核心 Android 框架文件中打印日志消息。例如,我尝试MediaRecorderClient.cppframeworks\base\media\libmediaplayerservice\. 我试过LOGV, LOGE, LOGD,printf__android_log_print, 没有任何成功。

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

4

5 回答 5

6

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

例子:

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

您可以在 Eclipse 中从 window-show view -> other -> android -> logcat 打开 logcat

于 2011-11-29T08:22:48.830 回答
3

你收到什么样的错误?如果它没有编译,请确保你已经包含了 <android/log.h>,也在 Android.mk 中:

LOCAL_LDLIBS := -llog

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

于 2011-11-29T10:42:58.630 回答
1

您似乎也只能将 char* 传递给 JNI LOG 方法。因此,如果调试字符串中有数字,则必须将它们放入 char 缓冲区(使用 sprintf)。

于 2011-11-29T08:36:20.553 回答
0

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

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

我相信宏调用是 ALOGV、ALOGE 等。

这与其他答案类似:

如何在 logcat 中为特定模块获取详细日志记录

于 2013-05-29T21:49:54.093 回答
0

首先声明字符串

Private String Tag = getClass().getsimplename();

而不是你的方法

 Log.d(Tag,"This is my oncreate method");
于 2014-07-15T09:58:21.070 回答