【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
相关推荐
小徐不徐说37 分钟前
数据库存储基础:理解表结构、主键、事务与 BLOB
开发语言·数据库·c++·qt·程序设计
蓝祁子yoky17 小时前
Qt学习日记 Day13:网络编程(一)-TCP基础与Socket实战
网络·qt·学习
飞浪纪元[FWC–FE]19 小时前
从零到一键绿:Qt 5.14.2 + VS2019 开发环境搭建、Kit 套件配置与构建错误修复完全手册
开发语言·qt
ShineWinsu21 小时前
对于Qt:QCheckBox常见属性的详细解析
c++·qt·面试·笔试·gui·qcheckbox·多选框
ShineWinsu1 天前
对于Qt:QPushButton常见属性的解析
开发语言·c++·qt·api·gui·按钮·qpushbutton
飞浪纪元[FWC–FE]1 天前
Qt 工程创建与 CMake / qmake 构建规范
开发语言·数据库·qt
Lhan.zzZ1 天前
用 Qt 构建线程安全的通讯静态库:从线程亲和性到完整工程
c++·vscode·qt·tcp/ip·udp
飞浪纪元[FWC–FE]1 天前
Qt 构建排错实录:从 MSB 1009 到生成器选型
开发语言·数据库·qt
小徐不徐说1 天前
C++ 接口与插件设计:从工厂注册到 Qt 动态插件
数据库·c++·qt·系统架构·程序设计
小王C语言1 天前
Qt常用控件:容器类控件,标题分组框、标签页(浏览器标签)
开发语言·qt