QT5.15.2搭建Android编译环境及使用模拟器调试(全)
一、安装QT5.15.2
地址:下载
我电脑的windows的,所以选windows
由于官方安装过程非常非常慢,一定要跟着步骤来安装,不然慢到怀疑人生
1)打开"命令提示符"(开始 -> Windows 系统 -> 命令提示符) 或者 “win+R” ->输入cmd
找到刚才的exe
命令行输入以下命令(exe位置根据自己实际的),然后回车
D:\ChromeCoreDownloads\qt-unified-windows-x64-4.6.1-online --mirror https://mirrors.ustc.edu.cn/qtproject
2)登录账号(没有的话就去注册)
QT5.15.2安装选择如下(下一步):
1、
2、
3、(安装位置可以选自己喜欢的)
4、组件选择自己喜欢的(或者跟着我也行),但是Android和sources一定要选上
5、
6、其他步骤下一步就好了,等待安装…
二、安装工具
一、下载需要的工具
ps:密码1234
JDK:Java语言的软件开发工具包,即java开发使用的sdk,这次用的是jdk8(下载)
SDK(oftware development kit):软件开发工具包,辅助开发某一类软件的相关文档、API必需资料、范例和工具的集合都可以叫做 “SDK”。(下载)
openssl:可选择配置,但是建议下载(下载)
二、安装
0、创建文件夹
(以D盘为例子),建立一个Android_tool文件夹,然后在其下再建立两个文件夹OpenSSL、SDK
1、安装JDK
打开jdk-8u371-windows-x64.exe,默认安装到c盘(一直下一步就好,闭眼操作)
安装jdk,一直下一步就好了。
c盘有这两个文件就表示安装成功
2、安装SDK
①将刚下载的的android-sdk_r24.4.1-windows.zip和commandlinetools-win-9123335_latest.zip复制并解压到"D:\Android_tool\SDK"下
②进入D:\Android_tool\SDK\android-sdk_r24.4.1-windows\android-sdk-windows,打开SDK Manager.exe
③选择需要的工具,可以参考我的(例子的用Android10 Android7.0 )
Extras建议全选,缺少某些组件可能会影响QT运行
ps:可能第二个 Android Auto Desktop Head Unit emulator 安装不成功,但是没关系
④点击install按钮
⑤全部接受许可证
这样子就完成了,然后点击install,等待安装…
PS:中间可能会更新avd和sdk的话那就重启一下SDK,然后继续下载
下载完成!
4、创建模拟器avd
① 打开AVD Manager.exe
② 创建新的模拟器(以Android7.0 armeabi-v7a 为例)
设置完成。
4、解压openssl
① 将刚下载的android_openssl-master.zip复制并解压到"D:\Android_tool\OpenSSL"下
三、搭建QT Android编译环境
① 打开QT5.15.2,找到菜单栏 -> 编辑 -> preferences
打开刚才安装过的SDK Manager.exe 将 sdk path的路径 拷贝到 QT的Android SDK的路径 下
② 点击设置SDK按钮
下载SDK工具包
这样就安装完毕了。
③ QT配置OpenSSL
将刚才解压的Openssl文件路径放到QT设置上
④ 解决 安卓设置存在错误
这个原因很多csdn都有说过(可参考文https://blog.csdn.net/yy_xzz/article/details/132135255)
出现的问题如下:
×Android SDK Command-line Tools run.
×Android Platform-Tools installed.
问题显示,cmdline tools工具已经安装,但是没有运行,android platform sdk没有安装,需重新下载旧版本的cmdtools 替换最新版本,问题得到解决。
所以将刚解压的“commandlinetools-win-9123335_latest”里面的cmdline-tools文件夹下所有文件都替换到sdk下的cmdline-tools\latest
重新打开QT,进入刚才的首选项界面
等待安装完毕!
这样的界面就算是配置成功了
四、调试第一个Android例子
1、尝试第一次编译
①菜单栏 ->文件 ->new project…
项目名称、路径任意,剩下的就默认设置
②尝试编译
如果有遇到问题可以往下继续看.
2、Android QT编译出错可能问题与解决方法(我曾经遇到的问题)
①未设景有效部署设备。
解决方法:
在AVD Manager.exe里面创建一个模拟器,可以翻到上门有AVD创建教程(如果跟着这次教程走不会出现这个问题)
②部署设备"XXXX"不支持套件架构
套件支持arm64-v8a”,但设备使用“armeabi-v7a,armeabi”。
解决方法:
找到kit,找构建的步骤里面设置勾上armabi-v7a
③问题一:模拟器缺失
已给安装的安卓 SDK 安装缺失的模拟器工具()
解决方法:将emulator的工具下载安装
④ 编译时出现
# include <type traits>type traits' file not found
[arm64-v8a mainobj] Error 1
解决方法:
1、有可能像网上说的NDK问题,换一个版本就好
2、有可能是构建出问题,需要取消arm64-v8a
⑤编译的过程中非常慢
Downloading https://services.gradle.org/distributions/gradle-5.6.4-bin.zip 下载非常慢
解决方法:参考
进入构建目录下找到“build.gradle”文件,修改为
buildscript {repositories {#google()#jcenter()maven{url'https://maven.aliyun.com/repository/google'}maven{url'https://maven.aliyun.com/repository/public'}}dependencies {classpath 'com.android.tools.build:gradle:3.6.0'}
}
⑥编译的过程出现
FAILURE:Build failed with an exception .
* Where:
Build file 'D: \XXX\ build-AndroidT1-Qt_5_15_2_Clang_Multi_Abi_59c420-Debug android-build build.gradle` line: 20
解决方法:参考
是因为gradle版本太高了,将 gradle 降低版本即可,编译就好了。如果不知道改为哪个版本,就新建一个项目,看看是什么版本的,直接改为相应的版本即可。
进入构建目录下找到“build.gradle”文件,修改classpath为自己正确的版本,
相关文章:

QT5.15.2搭建Android编译环境及使用模拟器调试(全)
一、安装QT5.15.2 地址:下载 我电脑的windows的,所以选windows 由于官方安装过程非常非常慢,一定要跟着步骤来安装,不然慢到怀疑人生 1)打开"命令提示符"(开始 -> Windows 系统 -> 命令…...
npm install报 ERESOLVE unable to resolve dependency tree
三四年前的一个项目,打开,npm install 一下,结果报 ERESOLVE unable to resolve dependency tree。 以前install都一切顺利,现在就不行,那很大的可能是npm的版本不同。 PS D:\workSpace\code\*-admin-ui-master> n…...
CentOS 7上创建Python 3虚拟环境
在CentOS 7上创建Python 3虚拟环境可以使用virtualenv包。以下是创建Python 3虚拟环境的步骤: 确保已经安装了Python 3和pip。可以通过在终端中运行以下命令来检查它们是否已安装: python3 --version pip3 --version如果未安装,请使用以下…...

B端设计必看的9个开源组件库,值得收藏!
如果你想开发一款To B Web端产品,如何选择令人眼花缭乱的开源组件库?行业团队常用的B端开源组件库是什么?今天,我们将为您带来入门级开源组件库的介绍。你可以先有一个大致的了解,希望能对你有所帮助。未来,…...
王坚院士:云计算与 GPT 的关系,就是电和电动机的关系
无论是行业,还是阿里,都身处巨变时。已经年过六十的王坚院士,重回阿里,重回大众视野,今年以来,在多个场合都能够看到他的身影。 而每一次他的分享,都值得我们细细品味。 以下为王坚院士在 202…...

Git代码合并流程规范
...
编译cef114.2 with h264
按照下面网页要求安装VS和SDK https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding.md#markdown-header-development Win 10 deployment, Win 10 build system w/ VS2022 17.5, Win 10.0.22621 SDK, Ninja rem 配置winsock科学上网 netsh winhttp set prox…...

A股风格因子看板 (2023.11第01期)
该因子看板跟踪A股风格因子,该因子主要解释沪深两市的市场收益、刻画市场风格趋势的系列风格因子,用以分析市场风格切换、组合风格暴露等。 今日为该因子跟踪第01期,指数组合数据截止日2023-10-31,要点如下 近1年A股风格因子收益走…...
Session+Cookie实现登录认证
使用 Session 和 Cookie 实现登录认证的流程通常包括以下步骤: 1. 登录认证流程 用户登录: 用户在登录页面输入用户名和密码。 服务器验证用户的凭证(用户名和密码)是否正确。 创建会话(Session)…...

mac matplotlib显示中文
以下默认字体,在mac ventura上测试能成功显示中文: import matplotlib.pyplot as plt import matplotlib#from matplotlib import font_manager #plt.rcParams[font.sans-serif] [Heiti TC]#plt.rcParams[font.sans-serif] [Songti SC]#plt.rcParams[f…...

python自动化测试模板
1:准备html模版 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>接口自动化…...

MySQL 外连接和内连接的查询优化怎么做?
目录 1. 表连接方式的分类和需要注意的细节 2. 表连接时底层做了什么事? 3. 左外连接优化方案 4. 内连接优化方案 1. 表连接方式的分类和需要注意的细节 多表连接查询,大体上可以分为内连接与外连接。 内连接的意思就是把两个表有关联的部分都取出…...

Web自动化测试 —— cookie复用
一、cookie简介 cookie是一些数据,存储于用户电脑的文本文件中 当web服务器想浏览器发送web页面时,在链接关闭后,服务端不会记录用户信息 二、为什么要使用Cookie自动化登录 复用浏览器仍然在每次用例开始都需要人为介入若用例需要经常执行&…...

Java自学第1课:安装JDK+Eclipse
1 引言 在学习前,我想说一句,那就是为什么要学习Java。 每个人的出发点都不同,对于做信息化的工程技术人员来说,java不懂,就没法干项目。 尽管有c和matlab等基础,但java看起来与这些语言都不太一样。 做…...

zabbix6.4监控centos
1、关闭防火墙 setenforce 0 #关闭SELinux sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config #设置永久关闭SELinux systemctl stop firewalld.service #关闭防火墙 systemctl disable firewalld.service …...

炫云客户端信用额度如何修改?
现在炫云新注册用户信用额度是100元,但是有人觉得信用额度太高了,想修改信用额度,不知道炫云的信用额度如何修改,今天就教大家如何修改炫云的信用额度。炫云的信用额度在炫云官网和客户端都可以修改。 我们先来看炫云官网如何修改…...

windows jar包文件默认打开方式设置
1、管理员权限打开“注册表编辑器”; 2、定位到计算机\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts项下,找到.jar项,再选中UserChoice项,其中ProgId值为jarfile 3、定位到计算机\HKEY_CLAS…...

高并发和存储之间的关系是什么?
文章目录 🔊博主介绍🤖博主的简介📥博主的目标 🥤本文内容🍊 一、高并发对存储的压力🍊 二、存储的性能和可扩展性 📢总结 🔊博主介绍 📕我是廖志伟,一名Java…...

Antv/G2 图表坐标轴文字过长时添加省略号
// 格式化文字,超过长度添加省略号chart.axis(city, {label: {formatter: (text) > {// 字符太长添加省略号return text.length > 5 ? ${text.slice(0, 5)}... : text;}}})完整 demo: <!DOCTYPE html> <html lang"en"> &l…...

pycharm更改远程服务器地址
一、问题描述 在运行一些项目时,我们常需要在pycharm中连接远程服务器,但万一远程服务器的ip发生了变化,该如何修改呢?我们在file-settings-python interpreter中找到远程服务器,但是发现ip是灰色的,没有办…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?
uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件,用于在原生应用中加载 HTML 页面: 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf
FTP 客服管理系统 实现kefu123登录,不允许匿名访问,kefu只能访问/data/kefu目录,不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...

ZYNQ学习记录FPGA(一)ZYNQ简介
一、知识准备 1.一些术语,缩写和概念: 1)ZYNQ全称:ZYNQ7000 All Pgrammable SoC 2)SoC:system on chips(片上系统),对比集成电路的SoB(system on board) 3)ARM:处理器…...
【安全篇】金刚不坏之身:整合 Spring Security + JWT 实现无状态认证与授权
摘要 本文是《Spring Boot 实战派》系列的第四篇。我们将直面所有 Web 应用都无法回避的核心问题:安全。文章将详细阐述认证(Authentication) 与授权(Authorization的核心概念,对比传统 Session-Cookie 与现代 JWT(JS…...

CMS内容管理系统的设计与实现:多站点模式的实现
在一套内容管理系统中,其实有很多站点,比如企业门户网站,产品手册,知识帮助手册等,因此会需要多个站点,甚至PC、mobile、ipad各有一个站点。 每个站点关联的有站点所在目录及所属的域名。 一、站点表设计…...

欢乐熊大话蓝牙知识17:多连接 BLE 怎么设计服务不会乱?分层思维来救场!
多连接 BLE 怎么设计服务不会乱?分层思维来救场! 作者按: 你是不是也遇到过 BLE 多连接时,调试现场像网吧“掉线风暴”? 温度传感器连上了,心率带丢了;一边 OTA 更新,一边通知卡壳。…...
C#最佳实践:为何优先使用as或is而非强制转换
C#最佳实践:为何优先使用as或is而非强制转换 在 C# 的编程世界里,类型转换是我们经常会遇到的操作。就像在现实生活中,我们可能需要把不同形状的物品重新整理归类一样,在代码里,我们也常常需要将一个数据类型转换为另…...