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

    在搭建好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_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 


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

使用Qt开发Android应用程序(Qt on Android),连接安卓手机真机调试时无法使用qDebug函数输出调试信息的解决方法_第1张图片

 

要想输出调试信息,先在cmd中输入:

adb logcat -c
adb logcat -s QtDebug

 

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

使用Qt开发Android应用程序(Qt on Android),连接安卓手机真机调试时无法使用qDebug函数输出调试信息的解决方法_第2张图片

 

 

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

使用Qt开发Android应用程序(Qt on Android),连接安卓手机真机调试时无法使用qDebug函数输出调试信息的解决方法_第3张图片

你可能感兴趣的:(Qt,qt,android,QT,qdebug)