Qt应用开发(安卓篇)——Linux下Qt15.5.2配置Android

目录

一、前言

二、Qt安装

三:JDK安装

四:安装SDK,NDK

五、其他事项

六、新建项目


一、前言

        看网上教程,多数是windows环境下的,配置也很简单,想不到自己配置的时候却遇到很多问题,传了一些资源文件和配置文件,如果不想在官网下载的,可以直接下载。

https://download.csdn.net/download/u014491932/88737711

        下面是环境配置的流程,前面三步安装都差不多,主要是后面构建的时候一直失败,令人头大,搞了好多天,全是踩坑经验。

二、Qt安装

        如果Qt未安装,官网下载https://download.qt.io/official_releases/online_installers/

        安卓开发套件必选,其他套件大家视情况选择。        

         如果已经下载过Qt,但是当初安装的时候没有选择安卓开发套件,只需要在安装路径下执行MaintenanceTool,最好是加上root权限执行。

三:JDK安装

        进入官网下载JDKhttps://www.oracle.com/java/technologies/downloads/

        拉到下面,选择1.8的版本,没注册的账号的同学这里需要注册,然后才能下载。

        下载完成之后,直接解压到安装目录下。

        编辑profile文件,末尾添加jdk路径到环境变量。

export JAVA_HOME=/home/xuguijun/jdk1.8.0_391
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

        source脚本让环境变量生效。

        查看jdk版本,出现如下结果即为配置成功。

四:安装SDK,NDK

        SDK和NDK就需要单独去下载了,打开QtCreator-工具-选项-设备-Android,选择JDK路径之后,选择Set Up SDK,这里要保证网络正常,后面就是不断的点击OK/YES和下一步就行了。

        安装完NDK、SDK、OpenSSL之后,选择Apply,点击OK关闭,再次打开环境界面,可以看到安卓的编译器,qmake已经自动都配好了,这时候就环境就基本配好了。

五、其他事项

        1、项目构建路径要简短或者直接取消勾选shadow build,否则会报错“Could not initialize class org.codehaus.groovy.runtime.InvokerHelper”

         2、Qt安装路径下,找到并修改sdk_definitions.json

        3、第一次构建项目不成功,出现“java.lang.NoClassDefFoundError: Could not initialize class org.codehaus.groovy.vmplugin.v7.Java7”或者“Could not initialize class org.codehaus.groovy.runtime.InvokerHelper”

        需要在构建的目录下找到gradle.properties文件,修改其内容增加JDK路径,然后重新编译。

 

        生成成功截图:

六、新建项目

        新建项目流程和桌面项目一样,我们选择一个widget项目,开发套件选择配置号的安卓。

        设置一个简短的构建路径。

        修改主页文字。

        直接构建,然后第一次报错,修改gradle.properties文件后成功生成apk文件,第二次构建时间比较长,可能十几秒,第三次构建就只需要1s。

        apk文件7.5M,这个大小还是很客观的。

        apk拷贝到手机,安装,显示有点问题,无伤大雅。

        拷贝到开发板,一样可以运行,非常棒。

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

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

相关文章

0_项目git地址——正点原子minifly与crazyflie

1、说明: 在每个专栏的第一篇文章,笔者都会贴出项目的git地址,方便后来者学习和复现; 下面介绍两个项目的官网资料和git地址,最后给出两者的对比; 2、正点原子minifly (1)minifly官网资料下载中心&#…

【深度学习每日小知识】Training Data 训练数据

训练数据是机器学习的基本组成部分,在模型的开发和性能中起着至关重要的作用。它是指用于训练机器学习算法的标记或注释数据集。以下是与训练数据相关的一些关键方面和注意事项。 Quantity 数量 训练数据的数量很重要,因为它会影响模型的泛化能力。通常…

Flink standalone集群部署配置

文章目录 简介软件依赖部署方案二、安装1.下载并解压2.ssh免密登录3.修改配置文件3.启动集群4.访问 Web UI 简介 Flink独立模式(Standalone)是部署 Flink 最基本也是最简单的方式:所需要的所有 Flink 组件, 都只是操作系统上运行…

Python--装饰器

在 Python 中,装饰器是一种特殊类型的函数,它们用于修改或增强其他函数或方法的行为。装饰器本质上是一个函数,它接受一个函数作为参数,并返回一个新的函数。使用装饰器可以在不修改原函数代码的前提下,给函数添加新的…

Linux 网络设置与基础服务

一 配置网络设置 主机名 hostname IP地址/netmask ifconfig ; ip a 路由:默认网关 route -n DNS服务器 cat /etc/resolv.conf 网络连接状态 ss netstat 域名解析 ns…

索引不是银弹

数据库索引:不是银弹 使用环境索引分类创建索引的代价最佳实践不是所有针对索引列的查询都能使用索引加速查询 索引只能匹配列的前缀条件涉及函数操作的无法使用索引联合索引只能匹配左边的列 总结 数据库索引是优化性能的良药,但却不是银弹&#xff01…

10-skywalking告警

https://github.com/apache/skywalking/blob/master/docs/en/setup/backend/backend-alarm.md 5.1:告警指标 ~$ vim /apps/apache-skywalking-apm-bin/config/oal/core.oal service_resp_time # 服务的响应时间 service_sla # 服务http请求成功率SLV,比…

09-Python服务链路追踪案例

skyWalking Python agent requires SkyWalking 8.0 and Python 3.7 # 将django包导入 ~$ cd /apps ~$ tar xf django-test.tgz ~$ cd django-test# 安装模块 ~$ apt install python3-pip ~$ pip3 install -r requirements.txt# 创建django项目mysite ~$ django-admin startpro…

创建一个简单鸿蒙app项目

文章目录 前言TypeScript 基础类型创建一个鸿蒙app总结 一、前言 鸿蒙系统上的开发已经是趋势了,必须紧跟时代的潮流。先简单了解下鸿蒙系统中,我们开发一个app需要用到的语言,那么就是TypeScript。这篇文章主要讲的就是一些基础的语法。最…

算法回忆录——排序

文章目录 1. 插入排序2. 选择排序3. 冒泡排序4. 希尔排序5. 归并排序6. 快速排序7. 堆排序8. 计数排序9. 桶排序10. 基数排序 1. 插入排序 分为两个序列,前面一个序列是排好序的,后面一个序列是未排好的。未排好的序列的第一个元素(a&#x…

腾讯云TDSQL TCA/TCP/TCE 认证考试有什么区别呢?

腾讯云认证等级:专项认证考试&云方向认证考试 一、专项认证考试 数据库交付运维-腾讯云TDSQL认证考试一共分为三个等级: 初级TCA、高级工程师TCP、专家级TCE 1、TDSQL TCA培训(MySQL版/PostgreSQL版)考试安排 TCA考试是纯理论题,总分是…

大模型推理优化实践:KV cache 复用与投机采样

作者:米基 一、背景 RTP-LLM 是阿里巴巴大模型预测团队开发的大模型推理加速引擎,作为一个高性能的大模型推理解决方案,它已被广泛应用于阿里内部。该引擎与当前广泛使用的多种主流模型兼容,并通过采用高性能的 CUDA 算子来实现了…

出租车费 C语言xdoj697

问题描述 某城市普通出租车计费标准如下: 起步里程为 3 公里,起步费 10 元; 超起步里程后 10 公里内,每公里 2 元; 超过 10 公里以上的部分,每公里加收 50%的回空补贴费; 营运过程中&#xff0c…

大数据技术之Hudi

第1章 Hudi概述 1.1 Hudi简介 Apache Hudi(Hadoop Upserts Delete and Incremental)是下一代流数据湖平台。Apache Hudi将核心仓库和数据库功能直接引入数据湖。Hudi提供了表、事务、高效的upserts/delete、高级索引、流摄取服务、数据集群/压缩优化和…

【每日小bug】mybatis plus id注解错误导致的问题

插入数据 id不为自增 指定了主键,没有指定自增。会导致出现 修改如上 报错 Data truncation: Out of range value for column ‘id’ at row 1 数据库是bigint,java中是Integer。 修改如上

Day28 17电话号码的字母组合 39组合求和 40组合求和II

17 电话号码的字母组合 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 因为输入的数字的数量是不确定的,所以for循环的次数也是不确定的&…

重学Java 3 变量 数据类型转换 运算符

路上难免会有许多挫折,你要学会应对,要坚不可摧 ——24.1.12 一、常量 1.概述:在代码的运行过程中,值都不会发生改变的数据 2.分类: 整数常量:所有整数,包含正负 小数常量:所有带小数…

通过 Elastic Stack 充分利用电信领域生成式 AI 的力量

作者:Elastic Piotr Kobziakowski, Jrgen Obermann 在瞬息万变的电信领域,Elastic Stack 与生成式 AI 的集成正在开创运营效率和创新的新时代。 这些技术不仅增强了网络运营,而且还彻底改变了各个部门的内部流程。 下面,我们将深入…

嵌入式必备的WEB知识

写在前面 嵌入式要学习Wed前端吗?答案是要的,不需要深入学习,只需要简单了解即可。为什么要学习? 原因如下: 可以远程控制和管理设备:通过简单的Web知识,嵌入式系统可以建立Web界面&#xff0c…

【Effective Objective - C】—— 熟悉Objective-C

【Effective Objective - C】—— 熟悉Objective-C 熟悉Objective-C1.oc的起源消息和函数的区别运行期组件和内存管理要点: 2.在类的头文件中尽量少引入其他头文件向前声明要点: 3.多使用字面量语法,少用与之等价的方法字符串字面量字面数值字…