【Qt】最详细教程,如何从零配置Qt Android安卓环境

本文详细描述了如何在墙内环境中,在QtCreator中配置Android开发环境,包括安装QtCreator、Qt、JDK,解决Gradle安装问题,以及配置模拟器和解决Build失败。作者分享了遇到的问题和解决方案,如使用AndroidStudio完善环境以解决下载和连接问题,并处理签名以实现Release模式下的成功运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文写于2024年1月21日,此时笔者查到的教程,都多少有些不够顺畅,有些是不够详细,有些是已经太久远,笔者折腾了小半天才配置完成。

为了给有同样需求的小伙伴节省时间,决定把相关教程更新一下

文章内容主要包括:

  • 如何在Qt中配置安卓开发环境
  • 在墙内环境下,遇到过哪些问题,最终如何解决的
  • 无法成功打包的问题

开发环境:
在这里插入图片描述

安装Qt Creator & Qt

这一步笔者就不详细介绍了,只是强调笔者安装版本如下:
在这里插入图片描述
另外,笔者在Qt Creator 12 + Qt 6.6.0环境下也完成过配置,不过Qt版本又额外下载并使用了Qt 6.2.4
在这里插入图片描述

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

安装下载&安装JDK

下载并安装JDK17(笔者尝试过JDK21,印象中会出问题)
https://www.oracle.com/java/technologies/downloads/#java17

在这里插入图片描述
打开installer开始安装,记得记住安装路径:
在这里插入图片描述
现在可以在Qt Creator中配置JDK了,打开“工具”->“外部”->“配置…”
在这里插入图片描述
选择“设备”->“Android”->JDK位置,通过“浏览”按钮,将JDK位置设置为刚刚安装的JDK路径

在这里插入图片描述

设置Android SDK

Qt本身带了配置Android SDK的工具的,配置JDK位置的图中,下面一行就是Android SDK,这里的路径可以不做修改,直接点击“设置SDK”按钮,会提示“是否下载并安装安卓SDK到xxx路径”,点击是即可开始下载安卓SDK
在这里插入图片描述

之后会提示:“确实安卓SDK所必要的包,是否安装缺失包”,点击“确认”
在这里插入图片描述
跳出安卓SDK管理器后,所有的都点“是”,就开始安装了(到这里都不需要梯子)
在这里插入图片描述
安装完成后,会自动开始设置安卓OpenSSL,这里基本都会失败,而且是可选项,可以直接取消掉。
在这里插入图片描述
当然也可以去这个Github项目把代码拉下来,然后把OpenSSL二进制位置设置为项目根目录。

Android模拟器下载

安装Android后,还缺少Android模拟器。这个也可以直接在SDK管理器中安装:
在这里插入图片描述
在“工具”一栏往下拉就能找到“Android Emulator”点击安装即可:
在这里插入图片描述在这里插入图片描述
之后重启Qt Creator,应该就在“构建套件”中看到安卓套件了

在这里插入图片描述

创建android设备(模拟器)

在“设备”->“设备”中,点击“添加”按钮来添加新的设备

在这里插入图片描述
设备类型当然选择Android设备:

在这里插入图片描述
这个时候可能会提示“无法为xxx创建AVD,请先从SDK管理器标签中安装系统镜像”

这个警告的原因是模拟器的Android版本比较低,我们只安装了Android 12.0,可能与模拟器不匹配。

我们可以回到Android SDK管理器(参考模拟器安装),安装Android 10.0(Q):
在这里插入图片描述
之后再去创建设备,即可创建成功

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

Gradle安装

到这一步,我们可以去尝试在Qt Creator中创建Android项目了:

创建项目,选择“Application(Qt)” -> “Qt Widgets Application” -> “选择”
在这里插入图片描述
随便起一个喜欢的项目名称,然后一直点击“下一步”到构建套件(Kit)

在这里插入图片描述
选择“安卓 Qt 6.4.3 Clang x86_64”套件,然后完成创建

在这里插入图片描述
在这里插入图片描述
此时如果点击左下角“运行”,会出现如下错误:

在这里插入图片描述
这个错误是下载gradle失败造成的,相信国内安卓开发同学不是第一次遇到了。

我们直接去这个地址:https://services.gradle.org/distributions/

下载需要的gradle,从错误信息中可以看到,是"gradle-7.4.2-bin.zip"

如果像上图所示,点击过“运行”按钮,那你应该可以在“C:\Users\xxx.gradle\wrapper\dists”中找到“gradle-7.4.2-bin”目录,其中有一个一长串字符组成的文件夹。
在这里插入图片描述

我们把下载好的gradle-7.4.2-bin.zip”直接移动到这个文件夹中(不用解压)

复制完成后,再次点击运行,理论上可以正常运行

问题解决

无法打开安卓模拟器

这里如果出现无法打开模拟器的情况,可以去“启动或关闭Windows功能”
查看Windows的Hyper-V服务是否已经打开

在这里插入图片描述

Build失败

到这一步,Qt开发Android的配置已经完成了,可以成功运行起来了吗?
答案是不能:

在这里插入图片描述

各种查找解决方案,找到如下可能的解决方案:

  • 方案一:不要使用Qt自带的SDK管理器,来源
  • 方案二:问题出在墙上,需要通过android studio协助

我们分别尝试:

方案一:不适用Qt自带SDK管理器(失败)

只有一个地方似乎提到似乎是Qt自带安卓SDK管理器的问题……

本以为直接使用Qt自带的SDK管理器能方便些,结果还是有坑

那么我们尝试使用其他教程中提到的SDK Manager重新安装Android SDK吧…,下载地址:https://www.androiddevtools.cn/

利用这个SDK Manager下载Android SDK和NDK等组件,但结果还是不行,报错也还是一样

方案二:利用Android Studio完善开发环境

配置过Android Studio的朋友,看上面的报错信息估计会有些眼熟,看上去像是墙造成的连接失败。

于是笔者按照之前配置Android Studio的经验,完成Android开发环境的配置。(主要是解决gradle-8.2-bin.zip下载失败的问题,以及梯子的问题)

在这里插入图片描述

配置完成后,重启计算机,再次打开Qt,就可以顺利运行起来了。

在这里插入图片描述

Debug模式成功,Relase失败

在Debug模式下,成功 运行起来之后,改成Release模式却失败了,报错如下图:
在这里插入图片描述
看报错信息Failed to collect certificates from xxx应该是和签名有关

又去查了Qt中如何配置签名,找到了如下解决方案:

  1. 选择“项目”,找到对应套件的“构建”部分,往下拉到“构建APK”部分,展开详情,里面有证书相关
    在这里插入图片描述
  2. 点击“创建”,开始创建签名
    在这里插入图片描述
  3. 填写红框中必要信息,然后点击创建即可
    在这里插入图片描述
  4. 有了签名后再运行就可以成功了
    在这里插入图片描述
### 使用 Stable Diffusion 模型生成视频的方法 为了利用 Stable Diffusion 模型创建视频内容,通常会采用一系列特定的技术流程来实现这一目标。以下是具体方法: #### 准备工作环境 确保安装并配置好必要的软件包和工具链。这包括但不限于 PyTorch 和 Hugging Face 的 Diffusers 库[^2]。 ```bash pip install torch torchvision torchaudio diffusers transformers accelerate safetensors ``` #### 加载预训练模型 通过调用 `diffusers` 中提供的 API 来加载预先训练好的 Stable Diffusion 模型实例。这些模型能够执行基于文本到图像或多帧序列的任务转换。 ```python from diffusers import StableDiffusionPipeline, DPMSolverMultistepScheduler import torch model_id = "runwayml/stable-diffusion-v1-5" pipeline = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16).to("cuda") pipeline.scheduler = DPMSolverMultistepScheduler.from_config(pipeline.scheduler.config) ``` #### 定义动画参数 设置用于控制视频合成的关键变量,比如帧率、持续时间以及每秒产生的图片数量等属性。此外还需要定义场景之间的过渡效果和平滑度选项。 ```python num_inference_steps = 50 # 推理步数 guidance_scale = 7.5 # 创意指导强度 video_length_seconds = 8 # 输出视频长度(秒) frames_per_second = 24 # 帧速率 (FPS) total_frames = int(video_length_seconds * frames_per_second) ``` #### 创建连续帧序列 对于每一帧都应用相同的 prompt 或者动态调整 prompts 来构建连贯的故事线。可以引入一些变化因素使相邻两帧之间存在差异从而形成流畅的动作感。 ```python prompts = ["A beautiful landscape at sunrise"] * total_frames for i in range(total_frames): if i % 10 == 0 and i != 0: new_prompt = f"A beautiful landscape with {i//10} birds flying over it." prompts[i:] = [new_prompt]*(total_frames-i) images = [] for frame_idx in range(total_frames): image = pipeline(prompts[frame_idx], num_inference_steps=num_inference_steps, guidance_scale=guidance_scale).images[0] images.append(image) ``` #### 合成终视频文件 后一步就是把所有的静态图象拼接起来成为一个完整的 MP4 文件或者其他格式的多媒体资源。可借助第三方库如 moviepy 实现此操作。 ```python from moviepy.editor import ImageSequenceClip clip = ImageSequenceClip(images, fps=frames_per_second) output_video_path = "./generated_video.mp4" clip.write_videofile(output_video_path, codec="libx264", audio=False) ```
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值