使用Qt开发Android应用程序(Qt on Android),连接安卓手机真机调试时无法使用qDebug函数输出调试信息的解 ...

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 20:39   2661   0

在搭建好Qt on Android的开发环境,我们就可以使用Qt开发安卓应用程序了。但是通过USB口连接安卓手机进行真机调试时,我们可能会发现无法使用qDebug函数输出调试信息。这个时候我们可以使用adb输出调试信息。adb在android SDK中,使用前请先安装android SDK并设置相应的环境变量。下面以一个简单的Qt程序为例子讲解adb的使用,该程序的作用是创建一个界面,在界面中有一个按钮,每点一次这个按钮都会输出一次调试信息。

clog.h

#ifndef CLOG_H
#define CLOG_H

#include <android/log.h>


#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 <QMainWindow>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private slots:
    void onBtnClicked();

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H

main.cpp

#include "mainwindow.h"
#include <QApplication>


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 -c
adb logcat -s QtDebug

然后在QtCreator中点击运行按钮,将程序部署到手机

即可看到命令提示符中输出了相应的调试信息

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP