我搭建的环境: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环境搭建
搭建好环境后,如下所示(这里主要看是否路径都正确了,不正确的话会有红色错误,检查路径,或者重装一下就好了):
这一步完成之后,去检查一下kits套件,如果都正确的话,kits套件里的android部分是可以用的(如图,不能用显示红色感叹号)。
注意:在这里可能你的kits套件里android以及Qt Version里的android编译器都显示红色感叹号,类似于下图(我这里是已经配置好后的截图),这是因为JDK版本不匹配(我的问题是JDK版本过高(14.0.1),随后我安装了较低版本(JDK1.8.0_251),最终问题解决,android编译器可以用了):
这只是初步搭建好的环境,目视没有问题,但是后面问题还很多,要涉及到更换版本!
2、环境搭建好后开始测试(测试过程中还很多问题,最终慢慢解决)
2.1 新建一个空项目,基类选择QWidget,如下图:(我开始测试时没有选,默认是QMainWindow,最终还是能生成apk文件,但是打开会闪退,并且没有任何内容)。这里提醒一下,qt安卓路径不能有中文以及空格!
2.2 编译器当然要有Android的啦!如下图:(其余编译器看个人喜欢,如果忘选了,在项目里也可以更改)
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,点击打开;
在这里面选择安装(按需求自行选择,之前安装SDK已经装过一次了,现在只是稍作更改):
到这里安卓虚拟机能正常打开了,但是编译还是不通过!
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,再新建项目测试,就OK啦,你会看到下图显眼的Build Successful
大功告成
至此一个apk文件就生成了,在debug文件里->android-build->build->outputs->apk文件夹里就能看到生成的apk文件了!
补充:解决Qt安卓虚拟机运行缓慢、卡顿的问题
在qt里直接点击运行,会让你选择安卓虚拟机,之前我们安装的AVD虚拟机在这里会显得非常鸡肋,半天才打开,然后界面还很卡!这里提供一个方法解决这个问题。
1.下载逍遥模拟器
2.打开逍遥模拟器,连接qt与逍遥模拟器就好了。
连接办法:打开cmd命令依次输入(adb连接到逍遥模拟器),如下图:
主要不同的就是第二行命令路径,找到你安装sdk的文件里的plantform-tools路径就好
注意:连接的时候逍遥模拟器一定要处于打开状态,每次关了模拟器后也要这样重连一次才行,然后在qt运行的时候,就会多一个模拟器选择,就是逍遥模拟器(如下图)。