Qt Creator 配置 Android 编译环境

Qt Creator 配置 Android 编译环境

  • 环境
  • 配置流程
    • 下载JDK
    • 修改Qt Creator默认android配置文件
      • 修改sdk_definitions.json配置
        • 修改的内容
    • Qt Creator配置
  • 异常处理
    • 删除提示占用
    • 编译报错
    • 连接安卓机调试APP闪退
    • 无法进入 debug 断点

环境

  • Qt Creator 版本 qtcreator-16.0.1
  • Win10
    嗯, Qt这个开发环境有点难折腾,搞了我三天…

配置流程

下载JDK

5.15.2 需要下载的jdk为JDK11

修改Qt Creator默认android配置文件

这里为什么要修改,是因为每个版本的Qt Creator中的sdk_definitions.json配置都不一致,但是我们Qt版本为5.15.2,且Qt Android 编译环境要求一致性比较高.

修改sdk_definitions.json配置

路径

C:\Qt\qtcreator-16.0.1\share\qtcreator\android

原始内容

{"common": {"sdk_tools_url": {"linux": "https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip","linux_sha256": "2d2d50857e4eb553af5a6dc3ad507a17adf43d115264b1afc116f95c92e5e258","windows": "https://dl.google.com/android/repository/commandlinetools-win-11076708_latest.zip","windows_sha256": "4d6931209eebb1bfb7c7e8b240a6a3cb3ab24479ea294f3539429574b1eec862","mac": "https://dl.google.com/android/repository/commandlinetools-mac-11076708_latest.zip","mac_sha256": "7bc5c72ba0275c80a8f19684fb92793b83a6b5c94d4d179fc5988930282d7e64"},"sdk_essential_packages": {"default": ["platform-tools", "cmdline-tools;latest", "emulator"],"linux": [],"mac": [],"windows": ["extras;google;usb_driver"]}},"specific_qt_versions": [{"versions": ["6.4"],"sdk_essential_packages": ["build-tools;31.0.0", "ndk;23.1.7779620", "platforms;android-31"]},{"versions": ["6.3", "6.2", "5.15.[9-20]"],"sdk_essential_packages": ["build-tools;31.0.0", "ndk;22.1.7171670", "platforms;android-31"]},{"versions": ["5.15.[0-8]", "5.14.[0-2]", "5.13.2", "6.0", "6.1"],"sdk_essential_packages": ["build-tools;31.0.0", "ndk;21.3.6528147", "platforms;android-31"]},{"versions": ["5.12.[0-5]", "5.13.[0-1]"],"sdk_essential_packages": ["build-tools;28.0.2", "ndk;19.2.5345600", "platforms;android-28"]}]
}

修改后的内容

{"common": {"sdk_tools_url": {"linux": "https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip","linux_sha256": "2d2d50857e4eb553af5a6dc3ad507a17adf43d115264b1afc116f95c92e5e258","windows": "https://dl.google.com/android/repository/commandlinetools-win-9123335_latest.zip","windows_sha256": "8a90e6a3deb2fa13229b2e335efd07687dcc8a55a3c544da9f40b41404993e7d","mac": "https://dl.google.com/android/repository/commandlinetools-mac-11076708_latest.zip","mac_sha256": "7bc5c72ba0275c80a8f19684fb92793b83a6b5c94d4d179fc5988930282d7e64"},"sdk_essential_packages": {"default": ["platform-tools", "cmdline-tools;8.0", "emulator"],"linux": [],"mac": [],"windows": ["extras;google;usb_driver"]}},"specific_qt_versions": [{"versions": ["6.4"],"sdk_essential_packages": ["build-tools;31.0.0", "ndk;23.1.7779620", "platforms;android-31"]},{"versions": ["6.3", "6.2", "5.15.[9-20]"],"sdk_essential_packages": ["build-tools;31.0.0", "ndk;22.1.7171670", "platforms;android-31"]},{"versions": ["5.15.[0-8]", "5.14.[0-2]", "5.13.2", "6.0", "6.1"],"sdk_essential_packages": ["build-tools;31.0.0", "ndk;21.3.6528147", "platforms;android-31"]},{"versions": ["5.12.[0-5]", "5.13.[0-1]"],"sdk_essential_packages": ["build-tools;28.0.2", "ndk;19.2.5345600", "platforms;android-28"]}]
}
修改的内容
"windows": "https://dl.google.com/android/repository/commandlinetools-win-9123335_latest.zip",
"windows_sha256": "8a90e6a3deb2fa13229b2e335efd07687dcc8a55a3c544da9f40b41404993e7d",
"default": ["platform-tools", "cmdline-tools;8.0", "emulator"]
"platforms;android-31":指示的是需要的Android  API 版本, 如果需要修改这里也要改成你需要的版本

以上修改是修改cmdline-tools版本,5.15.2需要配合8.0版本

Qt Creator配置

设置好jdk路径和SDK路径,注意SDK需要的是空文件夹,纯英文原始状态
点击设置SDK
在这里插入图片描述
在这里插入图片描述
然后全部点击,理论上讲就会自动下载对应的依赖.但是…
在这里插入图片描述
遇到上图所示,代表下载错误(此处我是搭梯子也好,还是重试也好,能成功完成下载的,都是纯属运气)
多试几次吧…,因为下载的依赖中都有个package.xml,我也不知道这个东西在哪里下载,或者配置.
在这里插入图片描述
这里检查下cmdline-tools版本 8.0
在这里插入图片描述

package.xml,这个文件必须存在且路径需要是:cmdline-tools\latest,否则即使下载成功,也会报错
在这里插入图片描述
成功以后是这样的
在这里插入图片描述
在这里插入图片描述

异常处理

删除提示占用

如果删除失败提示占用结束这个进程即可
在这里插入图片描述

编译报错

如果编译报错请检查一下参数,并改为图示版本
在这里插入图片描述
将gradle版本改为3.5.1
在这里插入图片描述

将build-tools版本改为31.0.0
在这里插入图片描述
这两个参数过高会导致编译报错

连接安卓机调试APP闪退

Qt Creator 16.0.1-14.0.2都闪退,建议降级到13.0.2,亲测有效

无法进入 debug 断点

最快的办法还是把QT Creator降级到9.0.2版本

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/80653.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用聊天模型和提示模板构建一个简单的 LLM 应用程序

官方教程 官方案例 在上面的链接注册后,请确保设置您的环境变量以开始记录追踪 export LANGSMITH_TRACING"true" export LANGSMITH_API_KEY"..."或者,如果在笔记本中,您可以使用以下命令设置它们 import getpass imp…

React vs Vue:点击外部事件处理的对比与实现

React vs Vue:点击外部事件处理的对比与实现 在 Web 应用中,“点击外部事件监听”是一种常见需求,典型应用如:点击弹窗外部关闭弹窗、点击下拉菜单外关闭菜单。虽然在 React 和 Vue 中实现的原理类似——都是通过监听 document 的…

3335. 字符串转换后的长度 I

3335. 字符串转换后的长度 I class Solution:def lengthAfterTransformations(self, s: str, t: int) -> int:# 大质数mod 10**97# 创建一个长度为26的数组cnt,对应26个小写字母cnt [0]*26# 计算出s中26个字符分别有多少个for ch in s:cnt[ord(ch)-ord(a)] 1f…

Java详解LeetCode 热题 100(15):LeetCode 189. 轮转数组(Rotate Array)详解

文章目录 1. 题目描述2. 理解题目3. 解法一:使用额外数组3.1 思路3.2 Java代码实现3.3 代码详解3.4 复杂度分析3.5 适用场景 4. 解法二:环状替换法(原地算法)4.1 思路4.2 Java代码实现4.3 代码详解4.4 复杂度分析4.5 陷阱与注意事…

数据治理域——日志数据采集设计

摘要 本文主要介绍了Web页面端日志采集的设计。首先阐述了页面浏览日志采集,包括客户端日志采集的实现方式、采集内容及技术亮点。接着介绍了无线客户端端日志采集,包括UserTrack的核心设计、移动端与浏览器端采集差异以及典型应用场景崩溃分析。最后探…

PYTHON训练营DAY24

# SO代码我们的感情好像跳楼机 # 元组创建时,可以省略括号:my_tuple4 10, 20, thirty # 字符串要加“ ” 元组 一、创建 my_tuple1 (1, 2, 3) my_tuple2 (a, b, c) my_tuple3 (1, hello, 3.14, [4, 5]) # 可以包含不同类型的元素 print(my_tupl…

超声波传感器模块

欢迎来到 破晓的历程的 博客 ⛺️不负时光,不负己✈️ 文章目录 1.HC-SR04介绍2.HC-SR04原理介绍2.1原理概述3.2原理详解 4驱动代码编写4.1写前思考4.2硬件连线 5.总结hcsr04.hhcsr04.c 1.HC-SR04介绍 超声波传感器有很多种类的型号:HC-SR04、UC-025、…

《Effective Python》第2章 字符串和切片操作——深入理解Python 中的字符数据类型(bytes 与 str)的差异

引言 本篇博客基于学习《Effective Python》第三版 Chapter 2: Strings and Slicing 中的 Item 10: Know the Differences Between bytes and str 的总结与延伸。在 Python 编程中,字符串处理是几乎每个开发者都会频繁接触的基础操作。然而,Python 中的…

py7zr解压文件时报错CrcError(crc32, f.crc32, f.filename)

报错信息 Traceback (most recent call last):File "/home/hp/project/test/file_util.py", line 130, in extract_archive_7zarchive.extract(targets[fixed_file], pathoutput_dir, recursiveTrue)File "/home/hp/miniconda3/envs/celery/lib/python3.10/sit…

物理:由基本粒子组成的个体能否提炼和重组?

个体差异源于基本粒子组合的复杂性与随机性,这一假设若成立,确实可能为生物医学带来革命性突破——但需要突破技术、理论与系统层级的多重壁垒。以下从科学逻辑与技术路径展开分析: 一、随机组合中的共性与稳定结构 1. 自然界的自组织规律 涌现性(Emergence):尽管粒子组…

动态路由EIGRP的配置

动态路由EIGRP的配置 动态路由EIGRP:增强内部网关协议 为何收敛快、不成环? 路由计算的无环路和路由的收敛速度是路由计算的重要指标。EIGRP协议由于使用了DUAL算法,使得EIGRP协议在路由计算中不可能有环路路由产生,同时路由计…

组合问题(多条件)

39. 组合总和 - 力扣&#xff08;LeetCode&#xff09; class Solution { private:vector<vector<int>>result;vector<int>path;void backtracking(vector<int>& candidates, int target,int sum,int startIndex){if(sum>target){return;}if(…

SimScape物理建模实例2--带控制的单质量弹簧阻尼系统

模型下载&#xff1a; 基于simscape&#xff0c;单质量系统带位置控制资源-CSDN文库 在实例1中&#xff0c;我们搭建了不带控制的单质量弹簧阻尼系统&#xff0c;该系统没有外界力量介入&#xff0c;只有弹簧的初始弹力&#xff0c;带着弹簧使劲弹来弹去。 SimScape物理建模实…

OpenAI Text 模型与 Chat 模型调用实战指南:从基础配置到创意花店命名

在 AI 应用开发的浪潮中&#xff0c;OpenAI 的大语言模型成为开发者实现创新功能的得力工具。其中&#xff0c;Text 模型和 Chat 模型作为核心接口&#xff0c;被广泛应用于文本生成、对话交互等场景。本文将以 “为花店起名” 为实际需求&#xff0c;手把手教你如何安全调用这…

网页常见水印实现方式

文章目录 1 明水印技术实现1.1 DOM覆盖方案1.2 Canvas动态渲染1.3 CSS伪元素方案2 暗水印技术解析2.1 空域LSB算法2.2 频域傅里叶变换3 防篡改机制设计3.1 MutationObserver防护3.2 Canvas指纹追踪4 前后端实现对比5 攻防博弈深度分析5.1 常见破解手段5.2 进阶防御策略6 选型近…

现代化QML组件开发教程

现代化QML组件开发教程 目录 QML基础介绍QML项目结构基本组件详解自定义组件开发状态与过渡高级主题最佳实践 QML基础介绍 什么是QML QML (Qt Meta Language) 是一种声明式语言&#xff0c;专为用户界面设计而创建。它是Qt框架的一部分&#xff0c;让开发者能够创建流畅、…

C/C++ 程序执行的主要过程

预处理&#xff08;Preprocessing&#xff09; 任务&#xff1a; 处理源代码中以 # 开头的预处理指令&#xff0c;包括&#xff1a; 头文件包含&#xff08;#include&#xff09;&#xff1a;将头文件&#xff08;如 stdio.h&#xff09;的内容直接插入到源文件中。宏替换&…

时间序列预测建模的完整流程以及数据分析【学习记录】

文章目录 1.时间序列建模的完整流程2. 模型选取的和数据集2.1.ARIMA模型2.2.数据集介绍 3.时间序列建模3.1.数据获取3.2.处理数据中的异常值3.2.1.Nan值3.2.2.异常值的检测和处理&#xff08;Z-Score方法&#xff09; 3.3.离散度3.4.Z-Score3.4.1.概述3.4.2.公式3.4.3.Z-Score与…

ValueError: Caught ValueError in DataLoader worker process 0.

参考链接&#xff1a; https://stackoverflow.com/questions/1841565/valueerror-invalid-literal-for-int-with-base-10 它提示我有个地方值错误空字符 果然因为格式处理没有传进去东西&#xff0c;找下原因&#xff0c;让它正常处理 原来是相对路径的.影响了程序运行 将v…

JavaScript性能优化实战,从理论到落地的全面指南

在前端开发领域&#xff0c;JavaScript的性能优化是提升用户体验的核心环节。随着Web应用复杂度的提升&#xff0c;开发者面临的性能瓶颈也日益多样化。本文将从理论分析、代码实践和工具使用三个维度&#xff0c;系统性地讲解JavaScript性能优化的实战技巧&#xff0c;并通过大…