如何用Qt写一个安卓Android应用

        对于不会安卓开发的同胞来讲(比如我),想要做一个安卓应用(.apk)使用Qt是一个不错的方法,今天就来聊聊如何使用Qt结合C++写一个安卓应用。

    首先我们得拥有一个Qt,我使用的是5.14.2版本的,新版本可直接到qt官网去下载qt.io,老版本的现在qt官网不支持下载了,我直接上链接好了

百度网盘:
链接: https://pan.baidu.com/s/1ho_-NCYmQP0Hhe1h77rYlA?pwd=kits                                        提取码: kits 
下载完成之后呢运行安装,如果有qt账号呢就直接登录然后Next,没有的话注册一下也是挺快的。

中间会让你选择安装目录,选择安装到你空间比较充足的地方就好了,比较简单就不放图了。点击Next与下一步直到这里把它勾上继续下一步,同意条约......

一直到这样然后呢点击安装即可,其次我们要进行安卓开发起码还需要三个东西:

以下工具实测都与Qt5.14.2兼容

Android SDK:

https://dl.google.com/android/android-sdk_r24.4.1-windows.zip

NDK: 

https://dl.google.com/android/repository/android-ndk-r21e-windows-x86_64.zip

JDK:

https://download.oracle.com/otn/java/jdk/8u202-b08/1961070e4c9b4e26a04e7f5a083f551e/jdk-8u202-windows-i586.exe?AuthParam=1738181121_cd654273f9ab495d49eb58298805a5b2

JDK高于Java8会导致不兼容,如果已经有安装过JavaJDK的宝子们可以打开命令提示符      (Win+R 输入cmd)使用指令 java -version查询当前JDK版本

如当前我的java version是 1.8.0_202 说明是java8版本。 

然后我们将SDK和NDK解压到随便哪个目录只要你记得,比如我把它们解压到同一个目录里:

 

然后我们打开sdk文件夹 ,双击运行SDK Manager.exe可执行文件

运行之后会弹出这个界面,然后勾选下面这些选项 ,这些选项因为我以前已经下载过了,所以后面的状态(Status)是Installed,宝子们如果没下载的话就是Not installed

勾选完成之后我们点击右下角按钮 Install packages这时候要是Install按钮处于不可用状态,而且左边文本编辑器中的组件图标是一个√和一个×说明你没有给要安装的插件接受许可协议,只需要点击接受按钮就可以了。

ndk不需要执行操作,只要解压出来就可以了,工具都准备好了然后我们进入Qt新建一个widgets项目

这里就选择安卓的构建工具就行

 然后一直下一步创建项目,这个时候宝子们应该会报错,因为我们的工具还没有与Qt Creator绑定起来,于是我们就可以绑定一下下,选择项目->manage kits...->设备->Android

这里就可以绑定SDJ,NDK,JDK的路径了,JDK的路径会自动绑定你下载的,如果不是也很好找,一般就在C:\program Files(x86)\Java这个目录下。

至于SDK和NDK直接选择解压出来的对应文件夹就好了:

至此环境就搭建好了,宝子们就可以掏出你Android系统的手坤用数据线连接电脑了,然后打开你手机的设置,找到关于本机,再然后连点几下版本号让手机处于开发者模式 ,在开发者选项中打开USB调试就OK啦

                                                接下来回到Qt中去,双击.ui文件                                         然后我们随便写点东西进去在手机上看看效果

 

 

                最后在主函数里面添加这三行代码用来给手机自适应大小:
#if (QT_VERSION >= QT_VERSION_CHECK(5,9,0))            QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
#endif

                                                         最后点击运行!!!

        

        选择你要部署到那台设备上然后OK,如果是一切顺利的情况下,它会自动下载gradle然后你的手机就会提示下载你的项目运行结果这个过程网络好的话几十秒就搞定了,我的就正常运行:

        如果你的编译器编译到这一步提示报错的话,那离成功就差最后一步:手动下载gradle

                                                通过网盘分享的文件:gradle-5.5.1-bin.zip
链接: https://pan.baidu.com/s/1cCe3Bds8-RdSNi8hPSULfg?pwd=kits

提取码: kits 
你也可以自行去网上搜索,但注意Qt对5.5.1版本的gradle兼容性最好,版本过高过低都会报错

下载好这个gradle之后直接把这个压缩包放在 

C:\Users\你的系统名\.gradle\wrapper\dists\gradle-5.5.1-bin 

这个目录下随机名字的文件夹中         宝子们的这个文件夹里有可能是空的也有可能不是,不用在意,再去qt构建一次就能跑啦 

                        怎么样,有用的话就点赞收藏一下叭,有问题欢迎随时私信讨论交流~ 

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

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

相关文章

泰语OCR识别技术方案

一、痛点分析1.1 泰语文字特性带来的挑战复杂字符集:泰语有44个辅音字母、15个元音符号、4个声调符号和10个数字,组合形式多样上下叠加结构:泰文字符常在垂直方向叠加组合,增加分割难度无词间空格:泰语单词间无明确分隔…

MER-Factory:多模态情感识别与推理数据集自动化工厂工具介绍

🛠️ 工具 如果这个项目对你有帮助,欢迎给 https://github.com/Lum1104/MER-Factory/ 仓库点一个 Star 🌟 ,这对我们帮助很大 MER-Factory 提供交互式工具来帮助您管理数据和配置处理流水线。 调优仪表板 调优仪表板 是一个基…

Python基础数据结构详解:字符串、列表、元组和字典的常用方法

目录 一、引言:为什么学习这些数据结构? 二、字符串(String)的常用方法 1. 基本操作 2. 查找索引 3. 大小写转换 4. 位置调整 5. 开头和结尾检查 6. 分割和连接 7. 删除空白字符 8. 类型判定 9. 替换内容 字符串小结 …

Liunx练习项目5.1-周期化任务;时间同步服务;

1.系统周期化任务1.1 at命令的用法at 时间 指定在规定的时间上执行相应的操作,完成操作crtlD完成编辑一分钟后输入的指令完成,创建了file{1..5}的文件at -l 查看系统上面所有用户的调度at -c 可以查看该任务的指令at -d 加编号可以删除该任务at -v 可以…

小皮面板搭建pikachu靶场

一、搭建所需的工具 1.下载小皮面板 下载地址为:小皮面板(phpstudy) - 让天下没有难配的服务器环境! 2.下载靶场所需的文件 下载地址为:https://github.com/zhuifengshaonianhanlu/pikachu 二、环境的搭建 打开小皮面板,使用所…

使用aiohttp实现高并发爬虫

使用aiohttp来编写一个高并发的爬虫,想法很不错,现实很骨感。这里我们要知道,由于高并发可能会对目标服务器造成压力,请确保遵守目标网站的robots.txt,并合理设置并发量,避免被封IP。 我将通过示例代码&…

【Linux庖丁解牛】— 信号量ipc管理!

1. 并发编程概念铺垫> 多个执行流【进程】看到同一份资源:共享资源。> 被保护起来的资源叫做临界资源。> 在进程中,涉及临界资源的程序段叫做临界区。【说人话就是程序中访问共享资源的代码】> 什么是互斥:任何时刻,只…

Spring Boot全局异常处理详解

原代码:package com.weiyu.exception;import com.weiyu.pojo.Result; import com.weiyu.utils.ErrorFileResponseUtils; import jakarta.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; import …

FHE技术将彻底改变在线隐私保护方式

1. 在线隐私的简史 互联网刚刚诞生时,所有的内容都是未加密的。人们通过一个特定的地址访问网站,这个地址以“HTTP”开头。当时,这并不是什么大问题,因为人们在线访问的都是内容,而这些内容本身已经是公开的。但随着电…

Cursor配置Java环境、创建Spring Boot项目

一:配置JDK和Maven cursor默认会读取环境变量JAVA_HOME和MAVEN_HOME,如果没有配置去找默认路径~/.m2/settings.xml也可以手动指定:Ctrl Shift P 输入"Preferences:Open User Settings(JSON)"打开settings.json文件,然…

win11添加无线显示器(两个笔记本实现双屏)

前置条件: 两个笔记本要要支持无线显示器,支持蓝牙; 1、自己重装的win11系统,首先根据网上说明进去的时候,红色显示无无线投屏; 2、安装网上操作,查看自己电脑是否支持无线投屏(是支…

【MAC技巧】Bash/Zsh切换失败的故障排除

【MAC技巧】Bash/Zsh切换失败的故障排除 Troubleshooting to Failure " chsh: no changes made" By JacksonML 在Mac电脑中,终端(Terminal)是常用的命令行工具,对开发和运维至关重要。 依照苹果电脑的系统软件迭代,终端中存有B…

卷积神经网络-卷积的分类

卷积的定义卷积是图像处理中最核心的操作之一,其本质是通过卷积核(滤波器)与图像进行滑动窗口计算(像素值乘积之和),实现对图像特征的提取、增强或抑制。一、二维卷积--针对二维矩阵进行处理1.1单通道见得最…

全网首发:使用GIT下载时崩溃退出,是因为机械硬盘

前面有几篇文章,说是GIT下载会退出。开始以为是虚拟机问题。把家里的虚拟机复制到公司,照样崩溃。后来认为是内存不足。昨天在家里下载代码,也崩溃退出。心里觉得奇怪,试了一次,还是退出。差别在哪里?之前是…

YAML 自动化用例中 GET vs POST 请求的参数写法差异

GET 请求:用 params 传参(附加在 URL 上) config:name: "GET 查询用户信息"base_url: "https://api.example.com"teststeps:- name: "根据 userId 查询用户信息"request:method: GETurl: /api/user/detailpara…

使用 SeaTunnel 建立从 MySQL 到 Databend 的数据同步管道

SeaTunnel 是一个非常易用、超高性能的分布式数据集成平台,支持实时海量数据同步。 每天可稳定高效地同步数百亿数据,已被近百家企业应用于生产,在国内较为普及。 Databend 是一款开源、弹性、低成本,基于对象存储也可以做实时分…

linux服务器换ip后客户端无法从服务器下载数据到本地问题处理

服务器换ip后客户端无法从服务器下载数据到本地,根据上图提示,让用户清理下~/.ssh/known_hosts文件,下载恢复正常。

从0到1实现Shell!Linux进程程序替换详解

目录从0到1实现Shell!Linux进程程序替换详解 🚀引言:为什么进程需要"变身术"?一、程序替换:进程的"换衣服"魔法 🔄1.1 什么是程序替换?1.2 程序替换的原理:内存…

暑期算法训练.2

目录 6.力扣 11.盛水最多的容器 6.1 题目解析: 6.2 算法思路: 6.2.1 暴力解法: 6.2.2 优化算法: 6.3 代码演示: ​编辑 6.4 总结反思: 7.力扣 611.有效的三角形个数 7.1 题目解析: 7.2…

华为OD 消消乐游戏

1. 题意 游戏规则:输入一个只包含英文字母的字符串,字符串中的两个字母如果相邻且相同,就可以消除。 在字符串上反复执行消除的动作,直到无法继续消除为止,此时游戏结束。 输出最终得到的字符串长度。 输入 输入原始…