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证书问题

这个真该好好吐槽下,反正你直接把http改成https大概率是行不通的,需要切换backend。

3、等等

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


总结

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

相关推荐
阿巴斯甜14 小时前
Android 报错:Zip file '/Users/lyy/develop/repoAndroidLapp/l-app-android-ble/app/bu
android
Kapaseker14 小时前
实战 Compose 中的 IntrinsicSize
android·kotlin
xq952715 小时前
Andorid Google 登录接入文档
android
黄林晴17 小时前
告别 Modifier 地狱,Compose 样式系统要变天了
android·android jetpack
冬奇Lab1 天前
Android触摸事件分发、手势识别与输入优化实战
android·源码阅读
城东米粉儿1 天前
Android MediaPlayer 笔记
android
Jony_1 天前
Android 启动优化方案
android
阿巴斯甜1 天前
Android studio 报错:Cause: error=86, Bad CPU type in executable
android
张小潇1 天前
AOSP15 Input专题InputReader源码分析
android
_小马快跑_2 天前
Kotlin | 协程调度器选择:何时用CoroutineScope配置,何时用launch指定?
android