將Qt日誌輸出到安卓日誌系統裏

將Qt日誌輸出到安卓日誌系統裏

因爲在學習qt on android,所以想把Qt日誌輸出到安卓日誌系統裏,方便程序調試

源代碼: 這裏

1.創建輔助函數,頭文件,源文件見截圖

0_1522552981119_TIM截圖20180401112237.png

0_1522553456300_222.png

在頭文件,我們判斷,如果定義了宏ANDROID,我們就安裝一個消息過濾器,接管qt輸出的消息,轉發到Android的日誌系統中,如果沒定義宏ANDROID,就是一個空宏,什麼也不幹
在源文件裏,我們安裝自己的消息過濾器
在消息過濾器裏將qt log類型轉換爲androi log類型
最後調用__android_log_write函數將日誌信息寫入Android日誌系統

PS: 一開始,我沒有 <android/log.h>這個頭文件,後來從NDK裏搜出來了,我的路徑【C:\Qt\android-ndk-r10e\platforms\android-12\arch-mips\usr\include\android\log.h】,拷貝到工程下,就解決了。真機智如我:smiling_face_with_sunglasses:

2.main文件中調用installLogcatMessageHandler,安裝消息過濾器,參數是自定義tag

0_1522553586364_222.png

3.編譯運行,在手機端測試,原諒我的button鬼畜:hugging_face:

0_1522554295881_TIM圖片20180401114313.jpg

4.qt 控制檯輸出

0_1522554736156_TIM截圖20180401115102.png

5.總結,qt原生log與android 日誌類對應關係,一一對應

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: 我發現這個ANDROID宏是自動的,構建平臺不同,自動識別,好智能有木有

0_1522555940035_TIM截圖20180401121049.png

0_1522556023753_TIM截圖20180401121328.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章