【QT android】环境安装及第一个QT项目

前言

本篇分享ubuntu环境下安装QT android的完整过程(图文),并用QT自带的样例实现调试及发版本安装流程。

环境安装

安装java环境

android编译依赖Java环境,本篇安装的JDK17

复制代码
sudo apt update
sudo apt install openjdk-17-jdk

安装安装完成后可以通过命令行查看版本:java -version

安装QT环境

可以官网在线下载,也可以找清华、阿里云、腾讯云的镜像下载,本篇安装的是qt 6.10.0

安装QT完成之后,从菜单"设置"打开【首选项】对话框

在构建套件kit中,可以看到多个andriod套件,把v8a设置为默认

安装android SDK

在SDKs菜单中,可以看到JDK位置、SDK路径、NDK列表等关键配置项,其中安装完成jdk17之后,打开SDKs菜单菜单时,会自动填入此路径,如果为空,则直接手动选中即可。

android SDK需要额外下载,可以点击【设置SDK】按钮完成下载

如果这个按钮没有响应,可以到谷歌中文官网下载

把包解压到~/Andriod/Sdk/cmdline-tools/last目录下,并运行以下命令安装SDK

复制代码
~/Android/Sdk/cmdline-tools/latest/bin/sdkmanager "platform-tools" "build-tools;35.0.0" "platforms;android-35"

安装NDK

NDK是编译环境,相当于桌面版本需要引用系统的g++,可以类比理解为嵌入式开发交叉编译是用专属的arm-g++版本来编译程序一样。

直接点击【SDK管理】按钮就会自动下载了,下载会久一点,耐心等待,下载完成后可以看到一个绿色的"✔"

此时在编译器中可以看到新增的安装NDK信息

安装OpenSSL(可选项)

在【SDKs】菜单中,可以看到OpenSSL设置项中带有红色标识,这是未安装的,不安装不会影响打包,包括签字证书也不是必要这项。

开发第一个andriod应用

qt和qml都可以开发出andriod应用,简单的可以用qt开发,复杂的最好用qml开发。以下是以qt自带的示例项目来介绍开发流程

(1)创建项目

在示例的Moblie列中选中一个项目双击

勾选上Debug和Release,并点击右下角的【Configure Project】按钮

这样样例默认是cmake的

(2)调试及发布

和常规的qt项目应用,需要点击qtcreator工具左下角的运行按钮,但是其上方的Debug角标有个红点,这是没有配置上安卓设备的原因导致。

1、配置安卓手机

可以设置虚拟的安卓设备,但本篇以真实安卓设备测试进行介绍。

  • 开启开发者模式:需要自行查看自己品牌手机的开启方式;
  • 开启USB调试:在开发者模式中开启USB调试;
  • 配置传输文件:设置以上两项之后,插入数据线之后,会提示是否传输数据,确认选中"传输文件"即可

配置完成之后,后台命令行adb devices可以查看是否有可行的安卓设备,我是安装的ubuntu虚拟机,正常方式挂载USB设备,也可能识别到安卓设备

此时再点开Debug,然后在右上角的设备列表中,可以看到一个绿色标识的设备,这个就是可用的安卓设备,选中它,并返回

以上操作完成后,可以看到Debug的角标已经变成绿色,此时可以点击运行按钮进行测试了

2、测试应用

Qt 在首次为 Android 构建时,会自动下载很多必需的依赖包(Gradle, SDK 组件等),需要将 C++ 代码交叉编译为 ARM 架构的代码,然后再用 Gradle 打包成 APK。

运行完成之后,安卓机上会自动安装上apk,并且自动打开此应用,此时可以进行调试了。

另外需要说明的是,qt6.10.0用qmake开发的应用,在编译时,会出现未自动安装apk的现象,cmake编译的项目是自动安装的。

如果需要手动安装,可以到以下目录中拷贝apk文件到安卓机中点击安装

复制代码
android-build-项目名称/build/outputs/apk/debug/

3、发布应用

发布应用比测试应用多一步签字证书的流程。需要发布应用时,先切换到release模式

然后到管理构建套件中找到【构建安卓APK】,点击右边的【创建】按钮

然后字段要求输入即可

此时再运行即可生成发布版本的apk,apk在此目录下

复制代码
android-build-项目名称/build/outputs/apk/release
相关推荐
江湖人称菠萝包3 小时前
【Qt】《Qt 5.9 C++开发指南》笔记-Chapter10-Data Visualization
笔记·qt·qt5
Cx330❀8 小时前
Qt 常用控件属性与底层机制详解:从窗口半透明、浮点数陷阱到 QSS 与焦点策略
qt·ui·图形渲染
Quz8 小时前
QML DelegateChooser:多条件组合与按列选择委托
qt
Quz8 小时前
QML DelegateChooser:按角色选择委托与按索引选择委托
qt
Cx330❀9 小时前
Qt 常用 UI 控件详解:从QPushButton到QLabel 核心用法解析
qt·ui·图形渲染
实心儿儿1 天前
Qt — 信号和槽
qt
江湖人称菠萝包1 天前
【Qt】《Qt 5.9 C++开发指南》笔记-Chapter8-绘图
笔记·qt·qt5
西西弗Sisyphus1 天前
Qt 实现一个 水波进度球
c++·qt·c
RAN11426760082 天前
1.3第一个程序的介绍
开发语言·qt