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

【Qt 学习之路】Qt Android开发环境搭建:Ubuntu的Vmware虚拟机中的踩坑实录

文章目录

  • 1、简介
  • 2、虚拟机内USB设备识别难题
    • 2.1、正确连接手机
    • 2.2、打开USB相关配置
    • 2.3、打开虚拟机中的手机设备
  • 3、Gradle下载速度缓慢之困
    • 3.1、下载 Gradle 镜像
    • 3.2、安放镜像位置
    • 3.3、修改项目中的gradle路径

1、简介

许久未曾使用Qt进行Android开发,今日在Ubuntu系统的虚拟机(VM)中搭建开发环境时,着实遭遇了不少棘手问题。接下来,我将详细分享此次搭建过程中遇到的各类“坑”及其解决方案,希望能为有同样需求的开发者提供参考。

  • 虚拟机内USB设备识别难题
    在开发过程中,需要将Android手机与开发环境连接以进行调试。然而,我遇到了一个颇为棘手的问题:Ubuntu系统能够正常识别通过USB连接的手机设备,但在虚拟机内的Windows系统中,手机却“隐身”了,无法被识别。这一状况直接阻碍了后续的调试工作,让我一度陷入困境。

  • Gradle下载速度缓慢之困
    在搭建环境时,默认配置需要下载gradle-5.5.1-bin.zip文件。但下载过程极其缓慢,进度条也没有一个,只能通过任务管理器中的网络来查看下载速度,几乎停滞不前。这不仅严重影响了开发效率,还让我对能否顺利完成环境搭建产生了担忧。

针对上述这些问题,本文后续部分将逐一进行深入剖析,并给出切实可行的解决办法。无论是正在为类似问题苦恼的开发者,还是计划在虚拟机中搭建Qt Android开发环境的新手,都能从本文中找到有价值的参考信息。

2、虚拟机内USB设备识别难题

2.1、正确连接手机

开展Qt Android开发调试,先正确用USB连接手机和电脑,选好质量佳的数据线,保证Ubuntu能识别手机。连接好后,在Ubuntu终端输入 lsusb 命令,查看设备ID,确认Ubuntu已识别手机,再进行后续操作

以下是插入手机前后对比,可以看到多了一个华为的手机设备。
在这里插入图片描述

2.2、打开USB相关配置

在这里插入图片描述

2.3、打开虚拟机中的手机设备

最关键的是这一步!
在VMware中依次打开
VM → Removable Devices → 你的手机设备(例如:HuaWei XXX) → connect 连接

如果你的虚拟机中显示手机的相关信息就成功了
在这里插入图片描述

3、Gradle下载速度缓慢之困

3.1、下载 Gradle 镜像

当前可用阿里云相关镜像:
https://mirrors.aliyun.com/gradle/gradle-5.5.1-bin.zip

3.2、安放镜像位置

打开windows的gradle缓存目录,因系统而已这里:

%APPDATA%\QtProject\gradle

默认是没有gradle的,需要手动建一个,然后把gradle的zip包复制到该目录。

3.3、修改项目中的gradle路径

Qt Creator 默认从 .gradle/wrapper/dists/ 目录读取 Gradle。
打开你自己的项目中的文件夹,修改配置文件。如果项目中的 gradle-wrapper.properties 文件未修改 distributionUrl,Qt 会继续尝试从官方服务器下载。

例如我的是:

build-RockerAndButton-Android_for_armeabi_v7a_arm64_v8a_x86_x86_64_Clang_Qt_5_14_2_for_Android-Debug\android-build\gradle\wrapper

找到“gradle-wrapper.properties”,将 distributionUrl 指向本地文件路径,例如:

distributionUrl=file:///C:/Users/<用户名>/AppData/Roaming/QtProject/gradle/gradle-5.5.1-bin.zip

这样就可以应用本地的Gradle构建了

http://www.dtcms.com/a/273885.html

相关文章:

  • Arcgis连接HGDB报错
  • python的类型注解讲解
  • c++设计模式:抽象工厂模式
  • 【unity游戏开发——优化篇】Unity6.2新功能介绍——Mesh LOD的使用
  • Redis数据类型之list
  • Vue3的组件通信方式
  • (1-7-2)Mysql 数据表的相关操作
  • ollama大模型spring单机集成
  • 输入输出练习
  • C++入门基础篇(二)
  • 【C语言网络编程】HTTP 客户端请求(域名解析过程)
  • P9755 [CSP-S 2023] 种树
  • 浮点测试初探
  • Genus:设计信息结构以及导航方式(路径种类)
  • Java中的泛型继承
  • 【C语言进阶】带你由浅入深了解指针【第四期】:数组指针的应用、介绍函数指针
  • 【Spring Boot】Spring Boot 4.0 的颠覆性AI特性全景解析,结合智能编码实战案例、底层架构革新及Prompt工程手册
  • mysql的LIMIT 用法
  • 1 APP-OneNET 生成token密钥
  • Ubuntu2404修改国内镜像
  • 我的第一个开源项目|Geex:道阻且长的开源之路
  • docker的学习
  • React中Redux基础和路由介绍
  • 将手工建模模型(fbx、obj)转换为3dtiles的免费工具!
  • threejs案例开发-中国3D国旗动画
  • PostgreSQL 查询库中所有表占用磁盘大小、表大小
  • [Meetily后端框架] 多模型-Pydantic AI 代理-统一抽象 | SQLite管理
  • 共享储能电站在工业用户经济调度中的matlab仿真
  • 需求升级,创新破局!苏州金龙赋能旅游客运新生态
  • Go中使用wire进行统一依赖注入管理