Qt android 打印调试
文章目录
- 安卓调试
- 安卓日志
- adb 加入path
- adb 查看日志
- 将Qt调试信息输出到logcat中
- 工程中使用
- 参考文档
推荐一个零声学院免费公开课程,个人觉得老师讲得不错,分享给大家: Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,立即学习
安卓开发,目前主要在windows下开发,虽然可以调试,但是有些库不好调试,只能经过打印来进行。
在上一章中《Qt android 开发环境搭建》中正常搭建环境,按F5就能对工程进行调试。或者如下图:
进行调试
安卓调试
安卓日志
adb 加入path
找到adb所在的路径,并将其加入PATH中。
adb未加入PATH中
加入PATH中
重新打开cmd窗口,adb正常
adb 查看日志
adb logcat
这样的日志,太多查看起来比较麻烦。
我们可以写入文件中,再通过工具来进行分析,查找。
adb logcat > log.log
使用notepad++ 打开log.log
将Qt调试信息输出到logcat中
CMakeLists.txt
# 需要添加这一句
target_link_libraries( android_vlc PRIVATE log )
log.h
#ifndef __LOG_H__
#ifndef __LOG_H__#ifdef ANDROID
void installLogcatMessageHandler(const char *TAG);
#else
#define installLogcatMessageHandler(TAG)
#endif#endif
log.cpp
#if defined(ANDROID)
#include "log.h"
#include <android/log.h>
#include <QDebug>
#include <QByteArray>static 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;break;case QtFatalMsg:prio = ANDROID_LOG_FATAL;abort();}__android_log_write(prio, g_TAG, localMsg.data());
}void installLogcatMessageHandler(const char *TAG)
{g_TAG = (TAG == 0 ? "QDebug" : TAG);qInstallMessageHandler(messageOutput2Logcat);
}#endif
在main中使用
main.cpp
#include "log.h"
#include <QApplication>
#include <QDebug>
#include <QMutex>int main()
{QApplication a(argc, argv);installLogcatMessageHandler("android_log");qDebug() << "Debug";qWarning() << "qWarning";qInfo() << "qInfo";qCritical() << "qCritical";return a.exec();
}
测试
工程中使用
开发中,Qt android生成的可执行的工程包,是一个.so文件,最终打包成一个apk,这里如果工程中有多个.so 就不好去单独调试了,这里就更好的去使用日志打印输入。来跟进项目
参考文档
Qt on Android:将Qt调试信息输出到logcat中
QT for android编写的程序如何输出调试信息到android的log日志
Qt android 打印调试相关推荐
- Android app:用Log方法打印调试信息 (Log.v,Log.d,Log.i,Log.w,Log.e)以及修改LogCat的颜色
Android app:Log方法打印调试信息 (Log.v,Log.d,Log.i,Log.w,Log.e)和修改LogCat的颜色 一.包含Log类,import android.util.Log ...
- android上调试H5小工具
由于android上,部分网页报错,网页直接调试是看不到的或者显示不够具体,此app方便H5开发人员,查看具体错误打印.并未做到分步调试. 而部分类似格式错误,IOS上,由于本身的严谨性可能会反而不报 ...
- android adb调试技巧
参考链接 超详细的dubug教程 Android Studio 调试技巧 Android中开发需要的高效助推的命令总结 Android adb shell am 命令介绍 adb shell dump ...
- [免费专栏] Android安全之动态调试APP的一些技巧「Android Studio调试」
也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 Android安全付费专栏长期更新,本篇最新内容请前往: [ ...
- 逮虾户!Android程序调试竟简单如斯
逮虾户!Android程序调试竟简单如斯 PS:行吧,不用百度了,逮虾户是<头文字D>的一首配乐<Deja vu>,中文谐音 "逮虾户",飙车漂移专用BGM ...
- Android程序调试方法介绍
静态调试 适用于:通过打印变量的值来查看某一时刻值是否正确 Toast(Snackbar)打印法 一般的Android开发人员最爱的调试法,使用简便,仅需一行代码,轻松打印: Toast.makeTe ...
- Android RIL 调试分析全记录 No APN found for carrier
Android RIL 调试分析全记录 以前没有调试过RIL的东西, 从零开始, 花了两周时间,终于拨号成功,这里发表出来与大家共享经验,少走弯路. 上一篇文章是一个成功拨号的Android RIL ...
- 使用Android模拟器调试linux内核
使用Android模拟器调试linux内核 为什么需要调试linux内核 如何在Android上调试内核 开发环境 创建模拟器 下载goldfish内核源码 编译goldfish内核 编译内核遇到的问 ...
- Unity中使用Profiler进行Android远程调试
Unity中使用Profiler进行Android远程调试 这两天研究了下Profiler进行远程调试Android, 查看内存和CPU使用情况等. 原来其实就研究过, 只是很久不用又忘了, 所以写文 ...
最新文章
- 青岛...沙尘暴!太可怕了~什么事儿都有!
- PaddleHub 1.0正式发布: 一键模型加载,十行代码完成迁移学习
- POI Workbook接口和HSSFWorkbook对象和XSSFWorkbook对象操作相应excel版本
- CRM_ORDER_PR_ASSIGN_SELECT_CB
- 车站计算机联锁系统的仿真设计,车站计算机联锁仿真设计.doc
- unity使用屏幕后处理实现闪烁特效,创建新的shader文件过程
- 新版应急预案现场处置应急演练方案各行业应急处置方案(共289份,265M)
- 后天淘宝客cms系统源码
- 在Visio中如何绘制直线
- SolidWorks参数化设计中Excel的应用
- Xmind 2022 Mac思维导图软件
- EMV技术学习和研究(九)终端行为分析
- 笔记——嵌入式软件开发学习(一)
- 【Unity VR开发】结合VRTK4.0:创建滑块
- MySQL 一条语句实现若记录存在则更新,不存在则插入
- 【托业】【怪兽】TEST02
- 软件测试有效性指标,如何衡量软件测试的有效性?
- Java JDK 8u221开发环境搭建
- Git 详细教程之一: Git 简介及其基本工作原理
- SAP MM 已使用物料启用批次管理
热门文章
- 使用Element的 InfiniteScroll 无限滚动组件报错
- Linux在线安装MySQL
- PSP 1000, PSP 2000, PSP 3000, PSP Go 相关
- [oeasy]教您玩转python - 0006 - 自由软件运动和开源运动
- Swoft 踩坑笔记一 - 安装Swoft并启动
- 侵犯公民个人信息罪怎么判刑
- ISTP(CPCI)会议论文不复杂的几个检索步骤
- AutoCAD 2017 Essential Training AutoCAD 2017基础培训 Lynda课程中文字幕
- 你能分清比例和比率吗?
- LTE物理信道PCFICH--学习笔记