Qt部署安卓构建环境

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

经常构建Qt的人都知道Qt除了支持PC环境还拥护Webassemble环境和Android环境。PC环境基本上不需要配置,安装好之后就可以直接用了,Android环境稍微麻烦一些,今天我就给需要Andriod环境的同学们写一个配置指南。

我的环境是6.8.3,建议使用Qt6的版本,我这里遇到的Qt5版本是有些问题的。


一、准备工作

Android Studio ,我觉得这个是必须的,你既然决定使用安卓了,这个IDE肯定必不可少了,而且后面需要它来安装SDK。这里我用的是2024.1,一定要用带java-17的。

二、开始部署

这里肯定是默认你已经安装好Qt环境了,包括用到的Android Kit,如果你没有安装Android Kit就按照下面的流程先安装,否则没法进行下一步。安装过的跳过第一步直接进入第二步。

1.安装对应的Android Kit

打开Qt MaintenanceTool这个是在线安装工具,是最方便的一种办法。

注:Qt5.14以后都不提供离线安装包了,后面的版本要么通过在线工具安装,要么源代码编译。
在这里插入图片描述

Android勾选上,点下一步等待完成。

在这里插入图片描述

2.配备Creator

目前安卓开发只能在Creator上操作,比入Clion是不能操作制作Android的,或者说得很繁琐的配置。

编辑->设置->SDKs

下面是我的配置环境,是配置好的Android环境,可以直接开发了。

在这里插入图片描述
JDK 位置:一定要选java-17,Android Studio 2024.1默认自带java-17环境的,在Android Studio安装目录下的jbr目录。

注:不同的Android Studio带的JDK版本是不一样的,我的2024.1带的是17。

Android SDK的路径:这个就是你Android Studio默认使用的SDK路径即可,Creator和Studio可以共用SDK路径,除非你不想这么做,你一定要使用独立的SDK路径就另外指定一个目录即可。这里我觉得它俩应该没有什么冲突,维持一致即可。

安卓 NDK 列表:这个先不要管,等你配置好会自动检测的,前提是你已经安装NDK了。NDK是必须安装的,因为Qt要把你写的代码编译成Android系统支持的.so

题外话:NDK是安卓专有的交叉编译工具链,它可以允许你在Windows或Linux系统上交叉编译出可以运行在手机上的程序(so),虽然都是Linux内核,但是它编译出来的so和Linux系统编译出来的so不通用!

在这里插入图片描述
注意:还是前面说的JDK版本必须和SDK版本匹配,否则检测不到Platform version。

三、创建Demo

如果上面全打绿勾了,说明可以构建Android程序了。像创建PC程序一样创建一个工具,最终构建套件勾选Android,这里用x86_64演示(我的虚拟机是x86_64的)。现在很多手机都是Arm64的,那就勾选Arm64的构建套件即可。
在这里插入图片描述

编译等待成功,这个时候你其实已经得到.apk了,这不过没有配置测试设备,还不能直接运行。

三、运行

通过我是虚拟机上运行的,你也能够插上真机。该时候有两种方法调试Android程序,1、就是直接在Creator上调试,2、在Android Studio上调试,下面分别说明办法。

1、Creator

编辑->设置->设备

在这里插入图片描述
添加Android 设备
在这里插入图片描述

选择架构和版本

你需要先去SDK下载虚拟机镜像才能执行。假设你是创建Android的程序员,你肯定知道怎么操控,或者网上搜一下。

在这里插入图片描述

成功后你的构建套件就会出现可选项,这个时候你就能直接在Creator上运行程序了。

在这里插入图片描述

最后,点击左下角的运行,就会构建->编译->打开虚拟机->安装->运行一气呵成。

2、Android Studio运行

很简单,用过Studio的人都会。打开项目选择Qt项目目录即可。

build->架构文件夹->andoird开头的文件夹,别打开错了。

在这里插入图片描述

下面的Android程序员都知道了:

gradle构建->编译->run

在这里插入图片描述

四、存在的问题

1、有些操作画面撕裂,比如下面的

在这里插入图片描述

这里真的要说两句,首先暂时不知道产生的原因,真机也有问题。堂堂大公司,居然做成这个样子,很多组件我都试过,各式各样的渲染问题,我感觉这不是一个普通程序员能解决的。

2、https证书问题
行不通的,得切换backend。就是这个真该好好吐槽下,反正你直接把http改成https大概率

3、等等
这个需大家一起去探索了,无论如何至少看到东西了。


总结

渲染撕裂一类的,其它https有办法解决。就是1、我感觉Android的挑战可能比Webassemble还大,主要

posted on 2025-12-13 11:42  ljbguanli  阅读(22)  评论(0)    收藏  举报