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是灰色的,没有办…...
地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...
GitFlow 工作模式(详解)
今天再学项目的过程中遇到使用gitflow模式管理代码,因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存,无论是github还是gittee,都是一种基于git去保存代码的形式,这样保存代码…...
08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险
C#入门系列【类的基本概念】:开启编程世界的奇妙冒险 嘿,各位编程小白探险家!欢迎来到 C# 的奇幻大陆!今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类!别害怕,跟着我,保准让你轻松搞…...
MySQL 8.0 事务全面讲解
以下是一个结合两次回答的 MySQL 8.0 事务全面讲解,涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容,并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念(ACID) 事务是…...
从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践
作者:吴岐诗,杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言:融合数据湖与数仓的创新之路 在数字金融时代,数据已成为金融机构的核心竞争力。杭银消费金…...
ubuntu22.04 安装docker 和docker-compose
首先你要确保没有docker环境或者使用命令删掉docker sudo apt-get remove docker docker-engine docker.io containerd runc安装docker 更新软件环境 sudo apt update sudo apt upgrade下载docker依赖和GPG 密钥 # 依赖 apt-get install ca-certificates curl gnupg lsb-rel…...
