将Qt日志输出到安卓日志系统里
将Qt日志输出到安卓日志系统里因为在学习qt on android,所以想把Qt日志输出到安卓日志系统里,方便程序调试源代码: 这里1.创建辅助函数,头文件,源文件见截图在头文件,我们判断,如果定义了宏ANDROID,我们就安装一个消息过滤器,接管qt输出的消息,转发到Android的日志系统中,如果没定义宏ANDROID,就是一个空宏,什么也不干在源文件里,我们安装自己的消息过滤器在消息过滤器里
将Qt日志输出到安卓日志系统里
因为在学习qt on android,所以想把Qt日志输出到安卓日志系统里,方便程序调试
源代码: 这里
1.创建辅助函数,头文件,源文件见截图
在头文件,我们判断,如果定义了宏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
3.编译运行,在手机端测试,原谅我的button鬼畜:hugging_face:
4.qt 控制台输出
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宏是自动的,构建平台不同,自动识别,好智能有木有
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)