2012-08-28 62 views
9

我加如何在android C++文件中打印日志?

#define LOG_NDEBUG 0 
#define LOG_TAG "StagefrightMediaScanner" 
#include <utils/Log.h> 

libstagefright/StagefrightMediaScanner.cpp

,但不能打印使用LOGV和LOGE什么,是否有任何其他的东西,我可以需要做什么?

+0

它使用android-ndk吗? – Lucifer

+0

@Lucifer不,我正在使用android 4.0源代码来调试框架的问题。 –

+0

[可以从Android JNI程序中调用什么Log API?](https://stackoverflow.com/questions/5465941/what-is-the-log-api-to-call-from-an- android-jni-program) –

回答

17

您可以使用下面的代码获取登录

__android_log_print(ANDROID_LOG_ERROR, "TRACKERS", "%s", Str); 

,并添加下面的头文件

#include <android/log.h> 
+0

在这种情况下Str是什么?它是一个变量,它的值是什么 –

+0

__android_log_write() – kinORnirvana

0

不,你做得对。只需检查它是否使用与printf()类似的ALOGV(),如果要打印带有日志的整数,则可以这样写:“ALOGV(”Integer is%d“,integer);”。

2

您可以检查框架/ AV /媒体/ libstagefright/Android.mk, 是否有

LOCAL_SHARED_LIBRARIES += liblog 

在里面。

然后,在frameworks/av/media/libstagefright/

$ mm 

$ adb push $OUT/system/lib/libstagefright.so /system/lib/ 

$ adb shell killall mediaserver 

然后重新启动您的手机或我开始MEDIA_MOUNTED意图,MediaScanner会的工作,而你刚才添加的记录(无论是ALOGE/ALOGVLOGE/LOGV)应该显示。