记录一下这几天搭建Qt for Android环境的坑。
1. Android环境
根据Qt官网说明,搭建Qt Android需要一些先决条件,即Android的开发环境,主要包括以下内容:
其中,需要注意的主要为JDK和Android版本之间的匹配问题。可以直接去Java官网下载JDK,也可以通过Android Studio下载。这里我使用了Android Studio,主要是考虑到后面安装Android SDK和NDK会更方便一些。
Android Studio安装好之后,可以通过sdk-manager进行SDK和NDK的安装,如下图:
2.Qt环境搭建
2.1 Qt中添加Android设备配置
主要包括JDK、SDK路径的设置,这里JDK、SDK可以直接使用Android Studio中通过sdk-manager安装的sdk路径。也可以通过点击“设置SDK”,在左边选择的一个空目录中,进行下载SDK和NDK(可能出现网络问题,推荐使用Android Studio安装)。
安装成功后,会出现如下提示:
2.2 kits的配置
Qt for Android的编译套件推荐通过Qt官方工具安装,可以找到Qt安装目录下的maintaintool.exe工具,选择"更新和删除组件“选项,在对应的Qt版本下安装Qt for Android内容。安装完成之后再打开Qt Creator就可以看的Qt Android 的Kits了。
3. 记一些遇到的问题
3.1 Qt creator设置中,没有Android选项
这是由于在较新的Qt creator中,默认没有开启Android的配置,这是需要在Qt 的plugins设置中,选中Android.dll,重启即可。
3.2 qt 部署提示: 当前无部署
打开kits,可以看到有个黄色感叹号,提示未设置部署设备。这时可以通过添加AVD虚拟设备或者连接真机的方式,之后会自动选择设备。注意连接真机需要开启USB调试。
3.3 构建时出现,Could not resolve all artifacts for configuration ':classpath'错误
根据Qt Forum的回答,可能是JDK版本不匹配的问题,检查我的版本之后发现不是这个原因。解决方案如下:
在环境配置中添加模板,如图所示位置:
之后在build.gradle文件中,修改如下内容:
repositories {
// 注释下面2行
// google()
// jcenter()
// 新增
maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
maven{ url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'}
maven { url 'http://maven.aliyun.com/nexus/content/repositories/google' }
这样修改以后,可能会出现连接到不安全的库的错误,需要把添加的第二个和第三个内容去掉,去掉以后如果出现库找不到,可以选择性的把第一个和第二个注释掉。
3.4 Read timed out和connect timed out
解决方法同3.3。