Qt5.13.0搭建安卓开发环境

准备材料

  1. 新版NDK,我选用的版本是r-20,目前是最新的。

  2. 新版Android SDK,我选用的25.2.5。

  3. Java SDK最好采用1.8.0,实测10版本和12版本识别不了。

  4. Qt5.13.0,Qt编译版本选择安装armv7和armv8以及Android x86_64。Qt的组件除了源码都装上,tool也都装上。

选择安装x86—64版本是为了在Windows上运行Android x86的64位虚拟机进行测试,因为我没有安卓测试机。至于发布版本则采用armv8版本编译即可,目前主流安卓机的CPU应该都是armv8架构。java的环境变量如何配置自行百度。

最后解压或安装目录如下:

下载SDK

进入android-sdk目录,打开SDK Manager.exe。如果打开闪退,原因是java的版本不对,或者是环境变量没有配置。打开之后下载勾选的项目,如图:

此处,我下载的是Android7.1.1版本,对应的编译工具下载了25.0.3,当然下载最新的编译工具也可以,向下兼容。extras全部下载,最后一项是x86架构Android虚拟机的加速插件。

镜像和sdk下载完了之后,打开android -sdk目录下的AVD manager.exe,创建x86-64架构的Android虚拟机,arm虚拟机会比较慢。创建虚拟机时,分配的RAM如果过大,下面会有提示不能超过多少数值,这时应该减少RAM至阈值或以下,不然会导致虚拟机打开失败。

配置Qt For Android

打开QtCreator,打开菜单里面的工具-选项,选择左侧的设备,然后选择设备tab页。如下图:

右侧的三个选择按钮是选择对应的开发包的根目录,选择完了之后,如果没问题,下面会有提示,配置正确。这是我配置完成之后的截图。最下面是我创建的Android虚拟机。配置完了之后kit界面会自动检测到Android版本的Qt,如下图:

创建Android App

新建一个QML或者widgets应用,选择x86-64版本的Qt套件。然后编译,这时候会提示一个错误:

根据gcc的-l用法,这是提示找不到libc++.so标准库,而标准库在ndk里面,目录如下图:

从txt里面的内容来看,这些数字后缀版本的.a和.so文件类似于一个软链接,最终还是让编译器去找libc++-static.so

和libc++-abi.so。所以我们可以模仿这种写法,拷贝一份libc++.a.29,然后重新命名为libc++.a,这时候重新编译就会解决这个错误。下面是安卓虚拟机跑QML应用的简单测试,如下图:


Qt5.13.0搭建安卓开发环境
http://yoursite.com/2019/08/05/Qt5-13-0搭建安卓开发环境/
作者
还在输入
发布于
2019年8月5日
许可协议