使用Qt开发Android应用程序(Qt on Android),连接安卓手机真机调试时无法使用qDebug函数输出调试信息的解决方法
16lz
2021-01-26
在搭建好Qt on Android的开发环境,我们就可以使用Qt开发安卓应用程序了。但是通过USB口连接安卓手机进行真机调试时,我们可能会发现无法使用qDebug函数输出调试信息。这个时候我们可以使用adb输出调试信息。adb在android SDK中,使用前请先安装android SDK并设置相应的环境变量。下面以一个简单的Qt程序为例子讲解adb的使用,该程序的作用是创建一个界面,在界面中有一个按钮,每点一次这个按钮都会输出一次调试信息。
clog.h
#ifndef CLOG_H#define CLOG_H#include #define LOG_TAG "QtDebug"//#define LOGW(str) __android_log_write(ANDROID_LOG_WARN,LOG_TAG,str)#define LOG(...) __android_log_print(ANDROID_LOG_DEBUG ,LOG_TAG, __VA_ARGS__)#endif // CLOG_H
mainwindow.h
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{ Q_OBJECTpublic: explicit MainWindow(QWidget *parent = 0); ~MainWindow();private slots: void onBtnClicked();private: Ui::MainWindow *ui;};#endif // MAINWINDOW_H
main.cpp
#include "mainwindow.h"#include int main(int argc, char *argv[]){ QApplication a(argc, argv); MainWindow w; w.show(); return a.exec();}
mainwindow.cpp
#include "mainwindow.h"#include "ui_mainwindow.h"#include "clog.h"MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(onBtnClicked())); LOG("hehe");}MainWindow::~MainWindow(){ delete ui;}void MainWindow::onBtnClicked(){ static int count = 0; LOG("clicked:%d",count++);}
mainwindow.ui
要想输出调试信息,先在cmd中输入:
adb logcat -cadb logcat -s QtDebug
然后在QtCreator中点击运行按钮,将程序部署到手机
即可看到命令提示符中输出了相应的调试信息
更多相关文章
- android NDK开发在本地C/C++源代码中设置断点单步调试详细教程
- Android:在service和activity之中,实现音乐播放进度条传递信息的两
- Android中解决破解签名验证之后导致的登录授权失效问题
- Android(安卓)Mms专题之:信息发送流程
- 这可能是最好的 Android/Kotlin日志输出方法
- android出现注: 某些输入文件使用或覆盖了已过时的 API。 注: 有
- hook android api伪造设备信息做刷量
- Android(安卓)开启个人热点时 获取连接人数以及连接上的设备信息
- 在Android中自定义捕获Application全局异常,可以替换掉系统的强制