將Qt日志輸出到安卓日志系統(tǒng)里
因?yàn)樵趯W(xué)習(xí)qt on android童谒,所以想把Qt日志輸出到安卓日志系統(tǒng)里单旁,方便程序調(diào)試
源代碼: 這里
1.創(chuàng)建輔助函數(shù),頭文件饥伊,源文件見(jiàn)截圖
在頭文件象浑,我們判斷,如果定義了宏ANDROID琅豆,我們就安裝一個(gè)消息過(guò)濾器愉豺,接管qt輸出的消息,轉(zhuǎn)發(fā)到Android的日志系統(tǒng)中茫因,如果沒(méi)定義宏ANDROID蚪拦,就是一個(gè)空宏,什么也不干
在源文件里,我們安裝自己的消息過(guò)濾器
在消息過(guò)濾器里將qt log類型轉(zhuǎn)換為androi log類型
最后調(diào)用__android_log_write函數(shù)將日志信息寫(xiě)入Android日志系統(tǒng)
PS: 一開(kāi)始驰贷,我沒(méi)有 <android/log.h>這個(gè)頭文件盛嘿,后來(lái)從NDK里搜出來(lái)了,我的路徑【C:\Qt\android-ndk-r10e\platforms\android-12\arch-mips\usr\include\android\log.h】括袒,拷貝到工程下次兆,就解決了。真機(jī)智如我:smiling_face_with_sunglasses:
2.main文件中調(diào)用installLogcatMessageHandler锹锰,安裝消息過(guò)濾器芥炭,參數(shù)是自定義tag
3.編譯運(yùn)行,在手機(jī)端測(cè)試城须,原諒我的button鬼畜:hugging_face:
4.qt 控制臺(tái)輸出
5.總結(jié)蚤认,qt原生log與android 日志類對(duì)應(yīng)關(guān)系,一一對(duì)應(yīng)
qt | android |
---|---|
QtDebugMsgTest | ANDROID_LOG_DEBUG |
QtWarningMsgTest | ANDROID_LOG_WARN |
QtCriticalMsgTest | ANDROID_LOG_ERROR |
QtInfoMsgTest | ANDROID_LOG_INFO |
QtFatalMsgTest | ANDROID_LOG_FATAL |
6.匯總
qml | qt | android |
---|---|---|
debug,log | QtDebugMsg | ANDROID_LOG_DEBUG |
warn | QtWarningMsg | ANDROID_LOG_WARN |
error | QtCriticalMsg | ANDROID_LOG_ERROR |
info | QtInfoMsg | ANDROID_LOG_INFO |
? | QtFatalMsg | ANDROID_LOG_FATAL |
PS: 我發(fā)現(xiàn)這個(gè)ANDROID宏是自動(dòng)的糕伐,構(gòu)建平臺(tái)不同砰琢,自動(dòng)識(shí)別,好智能有木有