将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 日志类对应关系,一一对应

qtandroid
QtDebugMsgTestANDROID_LOG_DEBUG
QtWarningMsgTestANDROID_LOG_WARN
QtCriticalMsgTestANDROID_LOG_ERROR
QtInfoMsgTestANDROID_LOG_INFO
QtFatalMsgTestANDROID_LOG_FATAL

6.汇总

qmlqtandroid
debug,logQtDebugMsgANDROID_LOG_DEBUG
warnQtWarningMsgANDROID_LOG_WARN
errorQtCriticalMsgANDROID_LOG_ERROR
infoQtInfoMsgANDROID_LOG_INFO
?QtFatalMsgANDROID_LOG_FATAL

PS: 我发现这个ANDROID宏是自动的,构建平台不同,自动识别,好智能有木有

0_1522555940035_TIM截图20180401121049.png

0_1522556023753_TIM截图20180401121328.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值