Qt5.14.2 + jdk-8u201 + android-ndk-r20b + android-sdk-r24.4.1
一、背景简介
本人为c++程序员,常用Qt,未接触过安卓开发,也不懂JAVA。某日心血来潮想开发一点用在安卓手机上的小工具,于是便尝试在Qt Creator上部署安卓开发环境,此过程较为繁琐,于是写下这篇文章作为备忘,如果此文还能顺便帮助到其他小伙伴那就更好了。
二、Qt环境
本人使用的配置是 Qt 5.14.2 + Qt Creator 4.11.1。
Qt的安装方式这里不做赘述,因为如果你不是常用Qt的c++程序员,极不建议你选择使用Qt进行安卓开发,因为这是一种非主流的方式,坑多资料少。你问我为什么要这么干?因为我懒得学新语言🤣
简单贴一个Qt5.14.2版本下载地址:
http://download.qt.io/archive/qt/5.14/5.14.2
三、JDK环境
本人使用的是 8u201 版本。
JDK下载与安装
8u201版本JDK下载地址:
https://mirrors.huaweicloud.com/java/jdk/8u201-b09/jdk-8u201-windows-x64.exe
使用默认的安装选项即可,有需要的话可以更改安装位置,我这里是把JDK安装到了D盘。
JDK环境变量设置
- 在系统环境变量中添加一条,变量名:
JAVA_HOME
,变量值是上一步中的JDK安装路径,我这里是D:\Program Files\Java\jdk1.8.0_201
(java5以后不再需要配置classpath,我们这里使用的是java8)。
- 在系统环境变量的Path中添加两条,第一条:
%JAVA_HOME%\bin
,第二条:%JAVA_HOME%\bin
。
- 在命令行中输入 java 与 javac,如果找得到命令,说明JDK的安装与配置已经成功了。
四、Android NDK环境
本人使用的是 r20b 版本。
Android NDK下载与安装
r20b版本NDK下载地址:
https://dl.google.com/android/repository/android-ndk-r20b-windows-x86_64.zip
下载完毕后在自己指定的路径解压,这一步解压后我的NDK路径是 E:\android-ndk-r20b。
Android NDK环境变量设置
在系统环境变量Path中将上一步的NDK路径添加进去,我这里是:E:\android-ndk-r20b
添加完毕后,可以用命令 ndk-build 进行测试。
五、Android SDK环境
本人使用的是 r24.4.1 版本。
Android SDK下载与安装
r24.4.1版本SDK下载地址:
https://dl.google.com/android/android-sdk_r24.4.1-windows.zip
下载完毕后在自己指定路径的解压,这一步解压后我的SDK路径是 E:\android-sdk-windows。
解压完毕后运行 SDK Manager.exe,根据下图[^1]选择组件进行安装
Android SDK环境变量设置
- 在系统环境变量中添加一条,变量名:
ANDROID_SDK_HOME
,变量值是上一步中的SDK解压路径,我这里是E:\android-sdk-windows
。 - 在系统环境变量的Path中添加两条,第一条:
%ANDROID_SDK_HOME%\tools
,第二条:%ANDROID_SDK_HOME%\platform-tools
。 - 在命令行中输入adb version,如果找得到命令,说明SDK的安装与配置已经成功了。
六、在Qt Creator中配置JDK、NDK、SDK
在 Qt Creator 的菜单栏中依次选择 工具 => 选项 => 设备,在子页面中选择 Android,分别配置好JDK、SDK、NDK的路径。如果配置正确,路径下方将出现绿色的小勾。
这一步完成后,你就可以尝试在Qt上使用Android构建套件进行编译了。
七、可能出现的报错
首次编译时自动下载Gradle,但是下不动
在Qt中第一次编译时,可能会自动下载gradle,而它默认的下载链接是下不动的,我们此时可以手动下载,根据需要下载的gradle的版本信息(我这里是gradle-5.5.1-bin)到下面的链接下载:
http://mirrors.cloud.tencent.com/gradle
如果你和我一样也是要下gradle-5.5.1-bin,你可以直接使用这个链接:
https://mirrors.cloud.tencent.com/gradle/gradle-5.5.1-bin.zip
在下载完成后,无需解压,直接将压缩包放到以下地址:
再次编译,问题消失。
编译提示找不到type_traits等库,Cannot open include file: ‘type_traits’: No such file or directory
之前我使用的Android NDK版本是r18b,出现了该问题,经查是因为NDK版本较老,换成r20b后问题解决。
参考文献
[^1]自用笔记-Qt5.14.2开发Android环境搭建 https://blog.csdn.net/z1872385/article/details/119822615?spm=1001.2014.3001.5506