2012-08-28 95 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)應該顯示。