北海建设网站,单位建设网站申请,软件开发办公,移动端开发用什么编程语言#include QtDebugqInfo() hello;
如上#xff0c;加入头文件#xff08;注意#xff1a;这里的头文件是QtDebug#xff0c;不是QDebug#xff0c;也不知道啥时候改的#xff0c;也不知道有啥区别#xff0c;先这样吧#xff09;后使用qI…#include QtDebugqInfo() hello;
如上加入头文件注意这里的头文件是QtDebug不是QDebug也不知道啥时候改的也不知道有啥区别先这样吧后使用qInfo来输出日志用qDebug()输出不了妈的。。浪费老子好长时间。。一种植物。USB线连上自己的手机后Qt Creator里点击运行Qt Creator底下的“应用程序输出”一栏会打印出用qInfo()输出的日志。但是这样有个问题就是手机上退出app后重新打开appQt Creator里是打印不了日志的因为在退出app时就相当于退出运行调试了。那么该怎么办呢怎么才能在手机重新打开app时还能看到日志输出呢
这里用到了 Android SDK里的adb工具。
打开此电脑空白处右键选择属性→左侧选择高级系统设置→高级→环境变量→在系统变量里找到变量为Path的双击打开点击新建把自己电脑里Android SDK目录下adb的绝对路径输入进去我的是 E:\android-sdk\android-sdk\platform-tools然后就是各种点确定保存。这时候环境变量设置好了那么在哪里用cmd打开控制台输入adb指令都能正常了。
我常用的指令是
adb logcat -c
应该是清空日志记录的功能clear。
adb logcat -v time -s Tag
仅仅显示指定标签的日志信息同时显示日志时间。比方 adb logcat -v time -s qnote 。仅仅显示标签为 qnote 的日志信息假设你想同一时候过滤多个标签能够用英文半角逗号分隔标签。如 adb logcat -v time -s qnote,test 。
代码工程里加入两个文件
qDebug2Logcat.h
#ifndef QDEBUG2LOGCAT_H#define QDEBUG2LOGCAT_H#include QtMsgHandler#ifdef ANDROIDvoid installLogcatMessageHandler(const char *TAG);#else#define installLogcatMessageHandler(TAG)#endif#endif // QDEBUG2LOGCAT_HqDebug2Logcat.cpp
#if defined(ANDROID)#include qDebug2Logcat.h#include android/log.h#include QDebug#include QByteArraystatic const char *g_TAG 0;static void messageOutput2Logcat(QtMsgType type,const QMessageLogContext context,const QString msg){int prio ANDROID_LOG_VERBOSE;QByteArray localMsg msg.toLocal8Bit();switch (type) {case QtDebugMsg:prio ANDROID_LOG_DEBUG;break;case QtWarningMsg:prio ANDROID_LOG_WARN;break;case QtCriticalMsg:// prio ANDROID_LOG_INFO;prio ANDROID_LOG_ERROR;break;case QtFatalMsg:prio ANDROID_LOG_FATAL;// abort();break;case QtInfoMsg:prio ANDROID_LOG_INFO;break;default:break;}__android_log_write(prio, g_TAG, localMsg.data());}void installLogcatMessageHandler(const char *TAG){g_TAG (TAG 0 ? QDebug : TAG);qInstallMessageHandler(messageOutput2Logcat);}#endif然后在 main() 函数前包括 qDebug2Logcat.h 头文件在 main() 函数体第一行增加以下的代码
installLogcatMessageHandler(yourLogTag);
到这里就OK了现在无论在main()函数里还是在自己的窗口类函数中用qInfo()都能输出日志。
cmd打开命令行控制台输入
adb logcat -v time -s yourLogTag
这里的yourLogTag就是main()函数里的yourLogTag可以自定义编辑。
输入后Qt Creator里运行程序底下的“应用程序输出”一栏会打印出用qInfo()输出的日志同时cmd命令行也能打印出日志。手机上退出app后重新打开appQt Creator里打印不了日志但cmd命令行还是能打印出日志。
参考链接
链接1
链接2
链接3