当前位置: 首页 > news >正文

Qt For Android之环境搭建(Qt 5.12.11 Qt下载SDK的处理方案)

文章目录

  • 一、Qt For Android运行示例
  • 二、个人理解及情况解析
  • 三、配置Android相关配置项
    • 3.1 安装简述
    • 3.2 安装Qt
      • 1.安装Qt第一步:启动Qt安装包程序
      • 2.Qt账号(注册)登录
      • 3.了解Qt开源使用义务
      • 4.指定Qt安装目录
      • 5.选择Qt安装内容
      • 6.接受“许可协议”
      • 7.开始菜单快捷方式设置
      • 8.准备安装
      • 9.等待安装完成
      • 10.安装完成并启动Qt
      • 11.查看Qt配置
    • 3.3 Java Settings配置
      • 1.启动Java安装包
      • 2.选择Java安装路径
      • 3.Java JDK安装
      • 4.JavaJRE窗口处理
      • 5.重启Qt查看Java配置项
    • 3.4 Android Settings配置
      • 1.选择SDK路径并Set Up SDK
      • 2.缺失包提示处理
      • 3.缺失包安装的验证许可证
      • 4.替换cmdline-tools文件夹(重要!重要!重要!)
      • 5.验证Android Settings配置是否正确
    • 3.5 Android OpenSSL Settings配置(此配置为可选项)
    • 3.6 Android配置完成
  • 四、编译Android Apk文件
    • 4.1 编译简述
    • 4.2 开始编译
      • 1.选择Android项目
      • 2.选择合适的编译套件
      • 3.开始构建APK
      • 4.寻找生成APK安卓安装包文件
    • 4.3 我遇到的问题
      • 1.构建失败(压缩包下载失败/不成功)
      • 2. 处理gradle-4.6-bin.zip压缩包
      • 3.继续构建

一、Qt For Android运行示例

下方视频为Qt官方示例程序【Arrow Pad Example】的APK安装包寻找流程。
通常是在构建目录中的如下路径:build-arrowpad-Android_Qt_5_12_11_Clang_arm64_v8a-Debug\android-build\build\outputs\apk
在这里插入图片描述

二、个人理解及情况解析

  1. 安装前的准备:Qt安装包、Java安装包、cmdline-tools文件夹替换包、android_openssl压缩包。
  2. 相关安装目录不要使用空格,如果遇到下载异常、构建异常可以看一下指定的Android目录是否存在空格,然后移除空格再次尝试。
  3. 后续补全…

三、配置Android相关配置项

3.1 安装简述

  1. 准备相关安装包(Java安装包、Qt 5.12.11安装包)以及相关必要的配置文件。
  2. 正常的安装流程可以直接按照步骤安装,需要注意的是Qt For Android的配置下载和配置文件替换流程。
  3. 一定要替换commandlinetools文件夹。

3.2 安装Qt

1.安装Qt第一步:启动Qt安装包程序

请添加图片描述

2.Qt账号(注册)登录

进入Qt 5.12.11欢迎界面,需要登录Qt账号,没有Qt账号点击Sign up进入注册流程注册账号,注册登录完成后点击Next
在这里插入图片描述

3.了解Qt开源使用义务

此处勾选(同意)下方红框中的选项,然后点击Next即可。
请添加图片描述

4.指定Qt安装目录

选择Qt安装路径(不想更换安装路径也可,视个人情况而定),然后点击Next
在这里插入图片描述

5.选择Qt安装内容

本章主要为Qt For Android环境搭建,可仅选择Android项及Debugger的内容即可,再点击Next进入下一步。
在这里插入图片描述

6.接受“许可协议”

此处勾选红框中的选项,然后点击Next进入下一步。
在这里插入图片描述

7.开始菜单快捷方式设置

此处无需更改,直接选择Next进入下一步。
在这里插入图片描述

8.准备安装

此处保证磁盘空间足够并点击Install开始安装。
请添加图片描述

9.等待安装完成

进入此界面后等待进度条达到百分之百即可。
请添加图片描述

10.安装完成并启动Qt

安装完成后点击Finish即可(可勾选Launch Qt Creator启动Qt或者在开始菜单中启动Qt)。
请添加图片描述
如下为进入的Qt界面
请添加图片描述

11.查看Qt配置

进入Qt后选择工具菜单中的选项菜单
请添加图片描述
点击Kits查看Qt Versions页面,此处的自动识别配置为异常状态,是因为我们还没有将Android配置配置完成。
在这里插入图片描述

点击设备查看Android页面,看到Java Settings、Android Settings和Android OpenSSL Settings为异常状态,接下来我们开始处理这些异常配置(处理完这些异常后,上图中Qt Versions页面的配置状态变为正常)。

在这里插入图片描述

3.3 Java Settings配置

1.启动Java安装包

双击启动Java安装包,进入如下界面后点击下一步
在这里插入图片描述

2.选择Java安装路径

根据个人情况选择Java安装路径后,点击下一步
在这里插入图片描述

3.Java JDK安装

等待安装完成。
在这里插入图片描述
安装完成后点击关闭即可。
在这里插入图片描述

4.JavaJRE窗口处理

我个人使用的安装包安装完成后会弹出JRE安装弹窗,此处直接关闭并确定取消安装即可(也可按需安装吗,我个人测试是不需要安装的)。
在这里插入图片描述

在这里插入图片描述

5.重启Qt查看Java配置项

此时关闭再打开Qt,打开选项弹窗,可以看到Java配置项以及是配置正确的情况,至此Java配置结束。
注:

  1. 若是个人打开配置不正确并且Java安装路径不准确,可尝试主动配置Java路径再查看情况。
  2. 也可尝试配置计算机环境变量查看效果(我个人同样是只有安装没有配置环境变量就可直接使用)。

在这里插入图片描述

3.4 Android Settings配置

1.选择SDK路径并Set Up SDK

在Qt 选项页面选择Android SDK的下载路径(注意路径不要有空格),然后点击Set Up SDK开始下载SDK。
注:点击Set Up SDK后会出现很多小弹窗,依次确认即可,文章后有详细步骤。
在这里插入图片描述

点击Set Up SDK后会弹出下载SDK Tools的提示小弹窗,直接点击Yes继续。
在这里插入图片描述
等待SDK Tools下载完成。
在这里插入图片描述

2.缺失包提示处理

下载完成后会弹出缺失必要包的提示,此处直接点击Yes安装缺失包。
在这里插入图片描述
然后弹出Android SDK Changes提示,点击Ok开始即可。

在这里插入图片描述

3.缺失包安装的验证许可证

开始安装缺失包后界面看似没有任何反应,但其实在选项页面的最下方已经正在Checking pending licenses。此处的验证需要耐心等待(视情况而定,我个人大概是等待了十分钟左右)。
在这里插入图片描述
上图检查完毕后会弹出如下图的弹窗,直接点击Yes继续即可。(查看未接受的许可证)
在这里插入图片描述
此时可以看到,下方出现一个进度条,这是我们依次接受每一个许可证即可。

在这里插入图片描述

当许可证接受完毕,进入下载流程,等待下载完成即可。
在这里插入图片描述
下载完成
在这里插入图片描述

完成后发现依旧是弹出缺失包的提示,并且还弹出了警告提示(如下),此时别担心,我们已经进入了下一个步骤

在这里插入图片描述
在这里插入图片描述

4.替换cmdline-tools文件夹(重要!重要!重要!)

将提供的cmdline-tools压缩包解压
在这里插入图片描述
并在指定的Android SDK目录中替换掉原有的cmdline-tools文件夹
在这里插入图片描述
然后切换到Qt界面,重新点击Set Up SDK再次识别指定目录
在这里插入图片描述

此时会提示指定路径存在有效的SDK包(下图一),并在确定后会再次请求下载/安装必要包(下图二)
在这里插入图片描述

点击Yes开始下载/安装确实的必要包
在这里插入图片描述
点击Yes后会再次弹出Android SDK Changes提示,点击Ok开始安装下载。
在这里插入图片描述
然后就是开始下载必要包。
在这里插入图片描述
下载完成!
在这里插入图片描述

5.验证Android Settings配置是否正确

完成以上操作后界面将卡顿一下,然后安卓配置显示配置正确。(若仍提示异常,重启Qt重新Set Up SDK指定目录尝试一下,或查看个第二节内容是否有类型的异常情况)
在这里插入图片描述

3.5 Android OpenSSL Settings配置(此配置为可选项)

解压缩事先准备好的Android OpenSSL(android_openssl-master.zip)压缩包到想要指定的目录。
在这里插入图片描述
解压后,直接设置解压缩文件目录到Android OpenSSL Settings中,并且Android OpenSSL Settings的配置状态显示完成。
在这里插入图片描述

3.6 Android配置完成

完成以上步骤后,我们发现Java Settings、Android Settings、Android OpenSSL Settings三组配置项都显示配置完成。
在这里插入图片描述
然后退出Qt再打开Kits界面发现Android配置项已经正常显示。
在这里插入图片描述
至此,Qt For Android 配置完成

四、编译Android Apk文件

4.1 编译简述

4.2 开始编译

1.选择Android项目

打开Qt后,在欢迎界面点击示例,本章选择Arrow Pad Example项目为编译示例。 在这里插入图片描述

点击Arrow Pad Example后弹出项目帮助弹窗,此时直接关闭即可。
请添加图片描述

2.选择合适的编译套件

榜之弹唱关闭后,需要选择一个合适的编译套件,然后直接点击Configure Project
在这里插入图片描述
点击Configure Project后进入如下界面,此时注意下图框选的内容,确保第一个红框是手机的图标,然后点击锤子构建。
在这里插入图片描述

3.开始构建APK

点击锤子(构建)后锤子变成一个结束图标,右下角也有构建进度条显示(进度条默认显示在状态栏中,点击右下角的上箭头可弹出如图的进度条窗口)。
在这里插入图片描述

首次构建需要下载gradle-4.6-bin.zip压缩包(下载时间较长,请耐心等待…),如果下载报错查看最后一节是否有同样问题可直接处理,下载完成后等待一会就构建完成了。
在这里插入图片描述

4.寻找生成APK安卓安装包文件

构建完成后可根据下方GIF寻找APK生成文件,此时本机若存在安卓模拟器可直接双击启动或发送到手机上开始安装。
在这里插入图片描述

4.3 我遇到的问题

1.构建失败(压缩包下载失败/不成功)

构建过程中出现以下情况,可尝试本方法。
情况1:连接拒绝
请添加图片描述
情况2:远程主机终止握手
在这里插入图片描述

2. 处理gradle-4.6-bin.zip压缩包

找到压缩包应该所在的目录,Qt在下载该压缩包的时候会创建该目录,若是没有则可直接找到4jp4stjndanmxuerzfseyb6wo文件夹前的路径,创建该文件夹即可。
在这里插入图片描述

粘贴压缩包到对应目录
在这里插入图片描述

3.继续构建

压缩包放置完成后,回到Qt继续构建。
在这里插入图片描述
此时就没有下载压缩包的等待时间,而是直接解压压缩包。
在这里插入图片描述

解压完成后继续下载其他配置。
在这里插入图片描述
所有配置下载完成后,稍作等待则构建完成。按照文章第一节的寻找步骤寻找APK即可。
在这里插入图片描述

友情提示——哪里看不懂可私哦,让我们一起互相进步吧
(创作不易,请留下一个免费的赞叭 谢谢 \o/)

注:文章为作者编程过程中所遇到的问题和总结,内容仅供参考,若有错误欢迎指出。
注:如有侵权,请联系作者删除

相关文章:

Qt For Android之环境搭建(Qt 5.12.11 Qt下载SDK的处理方案)

文章目录 一、Qt For Android运行示例二、个人理解及情况解析三、配置Android相关配置项3.1 安装简述3.2 安装Qt1.安装Qt第一步:启动Qt安装包程序2.Qt账号(注册)登录3.了解Qt开源使用义务4.指定Qt安装目录5.选择Qt安装内容6.接受“许可协议”…...

低代码开发中 DDD 领域驱动的页面权限控制

在低代码开发的领域中,应用安全与灵活性是两大关键考量因素。领域驱动设计(DDD)作为一种在软件设计领域广泛应用且颇具影响力的方法论,正逐渐在低代码开发的页面权限控制方面展现出其独特的价值与潜力。本文旨在客观地探讨如何借助…...

如果你的网站是h5网站,如何将h5网站变成小程序-除开完整重做方法如何快速h5转小程序-h5网站转小程序的办法-优雅草央千澈

如果你的网站是h5网站,如何将h5网站变成小程序-除开完整重做方法如何快速h5转小程序-h5网站转小程序的办法-优雅草央千澈 h5如何转小程序 如果当年你们开发网站是用的h5但是没有开发小程序,也没有使用uniapp这样的混开框架,但是目前根据业务需…...

docker redis安装

一.镜像拉取 docker pull redis:5.0新建文件 touch /home/redis/redis.conf touch /home/redis/redis_6379.pid # bind 192.168.1.100 10.0.0.1 # bind 127.0.0.1 ::1 #bind 127.0.0.1protected-mode noport 6379tcp-backlog 511requirepass roottimeout 0tcp-keepali…...

apisix的hmac-auth认证

目录 1、apisix的hmac认证Authorization头信息 2、signature的lua生成源码 3、java生成签证的简单示例 4、postman调用如下 apisix的hmac-auth认证,介绍可以看官方文档 hmac-auth | Apache APISIX -- Cloud-Native API Gateway 照着官方文档,发现生…...

elementPlus消息组件多按钮案例

let customClass zsl-el-message-box efb.messageBox({title: 操作提示,showConfirmButton: false,customClass,message: efb.VNode(div, null, [efb.VNode(style, null, .${customClass} .el-message-box__message {width: 100%;}),efb.VNode(div, null, hello world),efb.VN…...

计算机视觉目标检测-2

文章目录 摘要abstract1.Fast R-CNN1.1 RoI pooling1.2 End-to -End model1.3 多任务损失-Multi-task loss1.4 R-CNN、SPPNet、Fast R-CNN效果比对 2.Faster R-CNN2.1 RPN原理2.2 效果对比2.3 Faster R-CNN总结 3.总结4.参考文献 摘要 本周学习了Fast R-CNN和Faster R-CNN算法…...

爬虫数据存储:Redis、MySQL 与 MongoDB 的对比与实践

爬虫的核心任务是从网络中提取数据,而存储这些数据是流程中不可或缺的一环。根据业务需求的不同,存储的选择可能直接影响数据处理的效率和开发体验。本文将介绍三种常用的存储工具——Redis、MySQL 和 MongoDB,分析它们的特点,并提…...

深入解析MySQL索引结构:从数组到B+树的演变与优化

前言: 在数据库查询中,索引是一种关键的性能优化工具。然而,索引的失效可能导致查询效率大幅下降。为了更好地理解索引的工作原理及规避其失效,深入了解索引结构的演变过程尤为重要。 MySQL 的索引数据结构从简单到复杂&#xff0…...

【疑难杂症】 HarmonyOS NEXT中Axios库的响应拦截器无法拦截424状态码怎么办?

今天在开发一个HarmonyOS NEXT的应用的时候,发现http接口如果返回的状态码是424时,我在axios中定义的拦截器失效了。直接走到了业务调用的catch中。 问题表现: 我的拦截器代码如下: 解决办法: 先说解决办法&#xff…...

jmeter并发用户逐步递增压测找性能拐点

jmeter并发用户逐步递增压测找性能拐点 目的: 使用逐层递增的并发压力进行测试,找到单功能的性能拐点(一般需要包含四组测试结果,拐点前一组,拐点一组,拐点后两组),统计响应时间、…...

【PostgreSQL使用】最新功能逻辑复制槽的failover,大数据下高可用再添利器

逻辑复制的failover ​专栏内容: postgresql入门到进阶手写数据库toadb并发编程 个人主页:我的主页 管理社区:开源数据库 座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物. ✅ &#x1f52…...

【开源免费】基于SpringBoot+Vue.JS租房管理系统(JAVA毕业设计)

本文项目编号 T 102 ,文末自助获取源码 \color{red}{T102,文末自助获取源码} T102,文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…...

Linux下Nvidia显卡GPU开启驱动持久化

GPU开启驱动持久化的原因 GPU 驱动一直处于加载状态, 减少运行程序时驱动加载的延迟。不开启该模式时,在程序每次调用完 GPU 后, GPU 驱动都会被卸载,下次调用时再重新加载, 驱动频繁卸载加载, GPU 频繁被…...

MS SQL Server 实战 排查多列之间的值是否重复

目录 需求 范例运行环境 数据样本设计 功能实现 上传EXCEL文件到数据库 SQL语句 小结 需求 在日常的应用中,排查列重复记录是经常遇到的一个问题,但某些需求下,需要我们排查一组列之间是否有重复值的情况。比如我们有一组题库数据&am…...

【玩转MacBook】Git安装

Git 官网也提到了MacBook 可以使用 Homebrew 安装 Git,所以在此使用 Homebrew 安装。 1、安装 Homebrew 执行安装脚本 在 Terminal 中执行如下命令: /bin/bash -c "$(curl -fsSL https://gitee.com/ineo6/homebrew-install/raw/master/install.…...

【优先算法】双指针 --(结合例题讲解解题思路)(C++)

今日鸡汤: “无人负我青云志,我自踏雪至山巅。” -徐霞客《青云志》 释义:没有人能够帮助我实现我的理想,即使面对再大的困难,我也要踏着积雪,一步步,到达山巅。 目录 1.快乐数 2.盛最多的…...

简述css中z-index的作用?如何用定位使用?

z-index是一个css属性,用于控制元素的堆叠顺序, 如何使用定位用index 1、position:relative; z-index; 相对于自己来定位的,可以根据top,bottom,right,left&#xff…...

Redis——数据淘汰策略

文章目录 1. 引入2. 讲解2.1 Redis 中的 8 种数据淘汰策略2.2 LRU 和 LFU 算法2.3 建议 3. 总结 1. 引入 在 Redis——数据过期策略 的“引入”部分讲解过,Redis 的数据存在内存中,而内存容量相对较小,不能将大量数据 无限期 地缓存。然而&a…...

机器学习之KNN算法预测数据和数据可视化

机器学习及KNN算法 目录 机器学习及KNN算法机器学习基本概念概念理解步骤为什么要学习机器学习需要准备的库 KNN算法概念算法导入常用距离公式算法优缺点优点:缺点︰ 数据可视化二维界面三维界面 KNeighborsClassifier 和KNeighborsRegressor理解查看KNeighborsRegr…...

shell脚本--常见案例

1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)

前言: 最近在做行为检测相关的模型,用的是时空图卷积网络(STGCN),但原有kinetic-400数据集数据质量较低,需要进行细粒度的标注,同时粗略搜了下已有开源工具基本都集中于图像分割这块&#xff0c…...

springboot整合VUE之在线教育管理系统简介

可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...

iview框架主题色的应用

1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题,无需引入,直接可…...

解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist

现象: android studio报错: [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决: 不要动CMakeLists.…...

探索Selenium:自动化测试的神奇钥匙

目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...

数据分析六部曲?

引言 上一章我们说到了数据分析六部曲,何谓六部曲呢? 其实啊,数据分析没那么难,只要掌握了下面这六个步骤,也就是数据分析六部曲,就算你是个啥都不懂的小白,也能慢慢上手做数据分析啦。 第一…...

C#最佳实践:为何优先使用as或is而非强制转换

C#最佳实践:为何优先使用as或is而非强制转换 在 C# 的编程世界里,类型转换是我们经常会遇到的操作。就像在现实生活中,我们可能需要把不同形状的物品重新整理归类一样,在代码里,我们也常常需要将一个数据类型转换为另…...

Vue.js教学第二十一章:vue实战项目二,个人博客搭建

基于 Vue 的个人博客网站搭建 摘要: 随着前端技术的不断发展,Vue 作为一种轻量级、高效的前端框架,为个人博客网站的搭建提供了极大的便利。本文详细介绍了基于 Vue 搭建个人博客网站的全过程,包括项目背景、技术选型、项目架构设计、功能模块实现、性能优化与测试等方面。…...