怎么让qt程序在Android系统上运行

2023-10-29

我们都知道支持跨平台是Qt的特点之一,也是比较重要的特点。最近在学习Qt的开发,就在想,它是怎么支持跨平台的呢?我平时的程序都是windows系统下开发和运行,语言用c++。那怎么把我用c++写的qt程序运行在android平台上呢。带着这个问题,通过查资料,用下面方法实现了跨平台。(这可能不是唯一的方法,也不一定是最好的方法,只是我找到的方法,记录学习以一下。)

Qt最大的优势就是跨平台,因为最近在学习Qt,就想把写的Qt程序移植

一、准备工作

下载并安装qt for androidQt5.9之前每个版本都对应的编译环境,所以要下载安卓对应编译环境的qt版本,比如qt-opensource-windows-x86-android-5.7.0.exe。但现在这些东西资源很难找到了。而在Qt5.9后Qt官方将好多编译环境放到了一起,只需要安装对应组件就好,如下图。

我电脑上装的是5.7但是我又找不到qt-opensource-windows-x86-android-5.7.0.exe资源,就只好把qt升级到5.12.6了。

下载并安装android sdk。SDK:(Software Development Kit)软件开发工具包。android SDK为开发者提供了库文件以及其他开发所用到的工具。

下载并安装android ndk。NDK:(Native Development Kit)跟android SDK差不多也是一个开发工具包,是用来给安卓手机开发软件用的,但是和SDK不同的是它用的是C语言,而android SDK用的是Java语言,可以支持C++和java之间的通信。

下载并安装android jdk。JDK:(Java Development Kit) Java语言的软件开发工具包,Java核心,包括Java运行环境、类库、Java开发工具,简单的说JDK就是面向Java开发人员使用的SDK 。

我的jdk、sdk、ndk在android studio下载安装的,也可以其他途径下载安装

下载并安装apache ant。下载路径http://ant.apache.org/bindownload.cgi

二、Qt Creator开发环境配置

在qt creator中,工具-》选项。选择设备,选android选项卡,配置上一步jdk、sdk、ndk如下图。

 我的这些路径都是从android studio中project structure->sdk location里面拷过来的。

配置时应该根据自己实际安装路径配置。

配置avd管理器,Start AVD Manager-》Create new Android Virtual Device。可能会出现了No CPU/ABI system image available for this target的问题,如下图

解决办法如下:

在Android Studio中安装与上图中Target对应的android版本,我的是android 7.1.1如下图

安装完成后,再进入qt重新Start AVD Manager-》Create new Android Virtual Device就可以了。

三、新建项目

新建项目,模板选择android

 

起好名字,后面默认构建套件那里选择android

 在设计模式下,拖入一个TextLabel,内容输入Hello Qt for Android。

保存工程,点击运行,弹出选择设备,选取我的小米手机。

点击运行,手机上出现下图所示时,点击继续安装。

最后手机上运行效果如下。

 

 

四、遇到的问题以及解决方法

1、构建项目时模板选择里面没有android选项。原因是没有安装android组件(Qt5.9以上版本),解决办法是使用qt安装目录下MaintenanceTool.exe添加组件。5.9一下版本需要下载qt for android版本

2、创建android虚拟机器时可能出现No CPU/ABI system image available for this target的问题,解决办法安装与上图中Target对应的android版本。详见第二部分环境配置。

3、使用时MaintenanceTool.exe需要临时资料代理库http://mirrors.ustc.edu.cn/qtproject/online/qtsdkrepository/mac_x64/root/qt/

 

参考文档:Windows下用QtCreator和C++写Android程序-上

Qt5.12.2开发Android环境搭建

Qt 维护工具MaintenanceTool.exe 使用 

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

怎么让qt程序在Android系统上运行 的相关文章

随机推荐

  • 安装ChormeOS

    一 准备工具 16G的U盘一个 支持UEFI启动的电脑 二 下载工具 Ubuntu Mate 镜像下载 https ubuntu mate org download Rufus写盘工具 https rufus ie Chrome 安装框架下
  • SpringBoot + redis 简单运用

    初始项目 pom xml引入redis
  • LeetCode每日一题之二分搜索

    文章目录 1 关于二分搜索常见的误区 2 左闭右闭区间的写法 3 左闭右开区间的写法 4 找到第一个大于target的数 5 找到第一个小于target的数 6 找到第一个大于等于taregt的数 7 找到第一个小于等于target的数 1
  • Vue3 word如何转成pdf代码实现

    博主 锅盖哒 文章核心 word如何转换pdf 目录 1 前端部分 2 后端部分 在Vue 3中 前端无法直接将Word文档转换为PDF 因为Word文档的解析和PDF的生成通常需要在后端进行 但是 你可以通过Vue来触发后端的转换过程 下
  • 牛客网刷题-java

    大部分解答为牛客网各位同学的精彩回答 本文只是选择一些互联网常考题目记录备忘 1 一个类的构造器可以调用这个类中的其他构造器 this的作用其中一个就是在一个构造方法中调用另一个构造方法 格式为this 参数 如 this x super是
  • 小程序挣钱_抖推之家抖音小程序怎么挣钱?

    最近很多朋友来公司咨询 抖推之家到底是个什么样的项目 用抖音小程序怎么挣钱 真的只需要发发视频就可以了 大家对于它的好奇 疑问越来越多 今天小编就来为大家一一解答 一 抖推之家是个什么样的项目 抖推之家 专注于短视频流量变现服务 整合短视频
  • anaconda 创建虚拟环境、激活,使用的基本方法及安装包的基本方法

    第一步 打开Anaconda Prompt 可以看到这里是base环境 第二步 我们现在要创建一个新的虚拟环境 名叫test 且python版本为3 8 在安装过程中会出现下面这个选项 输入y就好了 创建成功如下图所示 hiahia 我们已
  • js 实现同时调两个接口

    let promiseValues getScreeningFileList id report getScreeningFileList id pathology Promise all promiseValues then res gt
  • 方舟生存进化服务器文件设置,方舟生存进化私人服务器设置教程[多图]

    方舟生存进化私人服务器怎样设定 得到使用权后 就能设置进入途径 下面小编为大家带来方舟生存进化私人服务器设置教程 一起来看看吧 私人服务器购买后 服主可以在里边配置自己的服务器信息 私人服务器进入方法 点击多人游戏下方的英文字母选项 就是私
  • win7及以上系统C++实现Hook explorer文件级监控复制、剪切和删除操作

    最近项目组需要实现一个对windows用户文件操作进行监控的功能 也就是使用explorer资源管理器的操作 于是乎我就想到了使用Hook的方法进行拦截 查找一番资料后发现XP调用的是最简单的CopyFileEx MoveFileWithP
  • 时间序列匹配之dtw的python实现(一)

    简介 Dynamic Time Warping 动态时间序列扭曲匹配 简称DTW 是时间序列分析的经典算法 用来比较两条时间序列之间的距离 发现最短路径 笔者在github上搜索dtw时发现了两个比较经典的库 dtw和dtw python
  • 最强英语翻译技巧-IT人士专用

    最强英语翻译技巧 IT人士专用 github传送门
  • UE4导入插件后编译无法通过,提示缺少typeinfo.h的坑。(VS2019踩坑记录)

    先说结论 VS有时候不用急着更新最新版本 包括工具也是 都是坑 再出问题我换17用了 参考链接 http papalqi cn 201910 cid 406 html https developercommunity visualstudi
  • 博客转站了~

    由于 CSDN 的博客功能经常有问题 所以把博文站点搬迁到 https www runzhliu cn 欢迎订阅 评论
  • Unity_物体旋转方法归纳

    0 旋转的三种方式 1 矩阵旋转 2 欧拉旋转 会造成万向节锁问题 3 四元数旋转 可避免万向节锁现象 1 方法1 Transform rotation Transform localRotation 旋转角度 void Update if
  • VC获取Unix时间戳

    获取Unix时间戳 std wstring GetUnixTimeStamp void FILETIME ft 0 SYSTEMTIME st 0 ULARGE INTEGER ull 0 GetSystemTime st SystemTi
  • 【数据分析】如何量化时间序列之间的相似性?

    如何量化时间序列之间的相似性 逝者如斯夫 不舍昼夜 时间不会停止 世界上的一切都在不断运动 抛开物理学或哲学的概念不提 几乎所有东西都可以被描述为一系列的事件 对数据更感兴趣的人来说 它们又可以被看做是一系列的测量 这就是我们所说的时间序列
  • 外卖店优先级问题(双指针降低时间复杂度)

    外卖店优先级问题 文章目录 外卖店优先级问题 问题详情 问题分析 1 普通思路 1 1输入储存问题 1 2 遍历存储的数据 1 3遍历 st N 数组 获得最终值 2 双指针 时间复杂度 O n 代码 具体的解析都在注释当中 其中困惑的点都
  • 面试题:InnoDB中一棵B+树能存多少行数据?

    作者 李平 原文地址 www cnblogs com leefreeman p 8315844 html 一 InnoDB一棵B 树可以存放多少行数据 InnoDB一棵B 树可以存放多少行数据 这个问题的简单回答是 约2千万 为什么是这么多
  • 怎么让qt程序在Android系统上运行

    我们都知道支持跨平台是Qt的特点之一 也是比较重要的特点 最近在学习Qt的开发 就在想 它是怎么支持跨平台的呢 我平时的程序都是windows系统下开发和运行 语言用c 那怎么把我用c 写的qt程序运行在android平台上呢 带着这个问题