Qt for Android 环境搭建与测试(各种问题最终解决,成功编译生成apk)

我搭建的环境:Qt5.9.9/QCreator4.11.0

jdk版本:jdk-14.0.1

SDK版本:SDK-r24.4.1-windows

NDK版本:NDK-r21-windows-x86-64

1、安卓环境搭建,参照我之前转载的:Qt for Android环境搭建

搭建好环境后,如下所示(这里主要看是否路径都正确了,不正确的话会有红色错误,检查路径,或者重装一下就好了):

Qt for Android 环境搭建与测试(各种问题最终解决,成功编译生成apk)_第1张图片

这一步完成之后,去检查一下kits套件,如果都正确的话,kits套件里的android部分是可以用的(如图,不能用显示红色感叹号)。

Qt for Android 环境搭建与测试(各种问题最终解决,成功编译生成apk)_第2张图片

注意:在这里可能你的kits套件里android以及Qt Version里的android编译器都显示红色感叹号,类似于下图(我这里是已经配置好后的截图),这是因为JDK版本不匹配(我的问题是JDK版本过高(14.0.1),随后我安装了较低版本(JDK1.8.0_251),最终问题解决,android编译器可以用了):

Qt for Android 环境搭建与测试(各种问题最终解决,成功编译生成apk)_第3张图片

这只是初步搭建好的环境,目视没有问题,但是后面问题还很多,要涉及到更换版本

2、环境搭建好后开始测试(测试过程中还很多问题,最终慢慢解决)

2.1 新建一个空项目,基类选择QWidget,如下图:(我开始测试时没有选,默认是QMainWindow,最终还是能生成apk文件,但是打开会闪退,并且没有任何内容)。这里提醒一下,qt安卓路径不能有中文以及空格
Qt for Android 环境搭建与测试(各种问题最终解决,成功编译生成apk)_第4张图片
2.2 编译器当然要有Android的啦!如下图:(其余编译器看个人喜欢,如果忘选了,在项目里也可以更改)
Qt for Android 环境搭建与测试(各种问题最终解决,成功编译生成apk)_第5张图片

3.报错类型及解决

新项目建好后就可以编译了,在这里我主要遇到以下几个错误:

3.1 cannot run target compiler xxxxxxxx -g++

解决办法:大概意思就是g++有问题,查阅资料说的是NDKr19c版本不支持g++,但是我使用的是r21,可能还是不支持,于是换版本为:r17c。重新编译,果然没有报刚刚那个错误了!但是仍然有两个警告!

3.2 警告意思大致是:android版本和编译器不匹配(结果就是安卓模拟器打不开)

解决办法考虑到kits套件里是android-v7a,这是不是Android7的意思,但是开始我在SDK里面装的是android10的平台及工具,随后在SDK里面装了Android7之后问题解决(注意:AVD虚拟机要选择android7配套)
具体操作:找到SDK安装目录,里面有个SDK Manager,点击打开;
Qt for Android 环境搭建与测试(各种问题最终解决,成功编译生成apk)_第6张图片
在这里面选择安装(按需求自行选择,之前安装SDK已经装过一次了,现在只是稍作更改):
Qt for Android 环境搭建与测试(各种问题最终解决,成功编译生成apk)_第7张图片

到这里安卓虚拟机能正常打开了,但是编译还是不通过!

3.3 Could not determine java version from 14.0.1

解决办法:这里就是编译器不能识别java版本,这也是之前说jdk版本过高的问题,换了低版本之后就好了,(换了jdk版本记得修改环境变量jdk对应路径)。在这之后又出现了一下问题!

3.4 You have not accept the license agreement of fllowing SDK componts;

解决办法:可能是重装了JDK的原因,导致之前的SDK不能识别,因此我又重新装了一遍SDK,这里就要注意同意所有的license(如图)。
Qt for Android 环境搭建与测试(各种问题最终解决,成功编译生成apk)_第8张图片
最后重启Qt,再新建项目测试,就OK啦,你会看到下图显眼的Build Successful

大功告成

Qt for Android 环境搭建与测试(各种问题最终解决,成功编译生成apk)_第9张图片
至此一个apk文件就生成了,在debug文件里->android-build->build->outputs->apk文件夹里就能看到生成的apk文件了!

补充:解决Qt安卓虚拟机运行缓慢、卡顿的问题

在qt里直接点击运行,会让你选择安卓虚拟机,之前我们安装的AVD虚拟机在这里会显得非常鸡肋,半天才打开,然后界面还很卡!这里提供一个方法解决这个问题。
1.下载逍遥模拟器
2.打开逍遥模拟器,连接qt与逍遥模拟器就好了。
连接办法:打开cmd命令依次输入(adb连接到逍遥模拟器),如下图:
Qt for Android 环境搭建与测试(各种问题最终解决,成功编译生成apk)_第10张图片
主要不同的就是第二行命令路径,找到你安装sdk的文件里的plantform-tools路径就好
注意:连接的时候逍遥模拟器一定要处于打开状态,每次关了模拟器后也要这样重连一次才行,然后在qt运行的时候,就会多一个模拟器选择,就是逍遥模拟器(如下图)。
Qt for Android 环境搭建与测试(各种问题最终解决,成功编译生成apk)_第11张图片

下面是我测试成功的截图:

Qt for Android 环境搭建与测试(各种问题最终解决,成功编译生成apk)_第12张图片

到这里,Qt安卓环境就可以完美使用了!

你可能感兴趣的:(Qt)