Qt for Android 开发环境

embedded/2024/10/16 2:31:23/

在搭建环境时开始感觉还挺顺利的,从 Qt 配置的环境里面看并没有什么问题,可真正编译程序的时候发现全是错误。

最开始的时候安装了 JDK21 最新版本,然后根据 JDK21 安装 ndk, build-tools, Platform-Tools 和 Gradle,但是不管这么搞都会有编译错误。然后在换成 JDK20,依然不行,最后换到 JDK18 的时候终于可以了。

需要注意的是还需要搭配正确的 gradle 版本和 gradle 插件版本。

版本

  • Qt5.15.2
  • jdk-18.0.2.101-hotspot
  • ndk-21.3.6528147
  • gradle版本: gradle-7.5.1-bin.zip
  • gradle插件版本: 7.4.2

Qt 配置 JDK

Qt 配置信息如图所示。

  1. 首先配置 JDK 环境,如果本地已经安装好,直接选择路径即可;没有安装 JDK 可以点击后面按钮进入下载页面下载。
  2. 配置 SDK 时选择一个空文件夹,然后点击 “Set Up SDK”,让 Qt 自动下载安装,这样操作更加简单。
  3. ssl 配置在步骤二中安装后会自动选择,也可以手动选择。
  4. 根据需要安装 build-tools 和 Platform-Tools 等工具。

Gradle 版本说明

  1. JDK 版本与 Gradle 版本对应:https://developer.android.google.cn/studio/releases/gradle-plugin?hl=zh-cn
  2. Gradle 下载链接:https://services.gradle.org/distributions/
  3. Gradle 版本与 Gradle 插件版本对应:https://developer.android.google.cn/studio/releases/gradle-plugin?hl=zh-cn
  4. android-build/build.gradle 文件中配置 Gradle 插件版本,如下 gradle:7.4.2 为 Gradle 插件版本。
dependencies {classpath 'com.android.tools.build:gradle:7.4.2'
}
  1. android-build/gradle/wrapper/gradle-wrapper.properties 文件中配置 Gradle 版本,同时需要注意,默认情况下将自动下载 Gradle 包,测试时无法下载,自己下载后放在 android-build/gradle/wrapper/ 即可。
distributionUrl=gradle-7.5.1-bin.zip
  1. 编译报错问题,错误信息如下,其解决方法是修改 android-build/gradle.properties 配置文件,将 JVM 原来的 2048 改为 1024。
FAILURE: Build failed with an exception.* What went wrong:
Unable to start the daemon process.
This problem might be caused by incorrect configuration of the daemon.
For example, an unrecognized jvm option is used.
Please refer to the User Manual chapter on the daemon at https://docs.gradle.org/7.5.1/userguide/gradle_daemon.html
Process command line: D:\software\Java\jdk-18.0.2.101-hotspot\bin\java.exe --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.invoke=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.prefs/java.util.prefs=ALL-UNNAMED --add-opens java.prefs/java.util.prefs=ALL-UNNAMED --add-opens java.base/java.nio.charset=ALL-UNNAMED --add-opens java.base/java.net=ALL-UNNAMED --add-opens java.base/java.util.concurrent.atomic=ALL-UNNAMED -Xmx2048m -Dfile.encoding=UTF-8 -Duser.country=CN -Duser.language=zh -Duser.variant -cp C:\Users\Administrator\.gradle\wrapper\dists\gradle-7.5.1-bin\ertkw1ldykftus49ntdszylsr\gradle-7.5.1\lib\gradle-launcher-7.5.1.jar org.gradle.launcher.daemon.bootstrap.GradleDaemon 7.5.1
Please read the following process output to find out more:
-----------------------
Error occurred during initialization of VM
Could not reserve enough space for 2097152KB object heap* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.* Get more help at https://help.gradle.org
Building the android package failed!-- For more information, run this command with --verbose.
11:33:40: 进程"D:\software\Qt\5.15.2\android\bin\androiddeployqt.exe"退出,退出代码 14 。
Error while building/deploying project Android3 (kit: Android Qt 5.15.2 Clang Multi-Abi)
When executing step "Build Android APK"

解决方法:

org.gradle.jvmargs=-Xmx1024m

http://www.ppmy.cn/embedded/4460.html

相关文章

MAC安装CocoaPods遇到的错误Failed to build gem native extension.

MAC安装CocoaPods遇到的错误Failed to build gem native extension. 配置flutter环境的时候报错cocoapods不可用 发现已经安装了CocoaPods,但是不能用 重新安装CocaPods sudo gem install cocoapods重新安装报错如下: 安装RVM curl -L https://get.r…

Octopus+: An RDMA-Enabled Distributed Persistent Memory File System——泛读笔记

TOS 2021 Paper 分布式元数据论文阅读笔记整理 问题 非易失性存储器(NVM)和远程直接存储器访问(RDMA)在存储和网络硬件中提供了极高的性能。然而,现有的分布式文件系统隔离了文件系统和网络层,而且分层的…

prompt提示词:影响力营销文案,让AI 帮你写营销文案

影响力营销文案提问技巧 1.我正在寻找一个有影响力的营销活动大纲,向我的[理想客户角色]展示我的[产品/服务],并说服他们在符合我们品牌价值的[有影响力的类型]的帮助下采取[期望的行动]2.我需要一个有影响力的营销活动大纲&…

【AIGC调研系列】Grok-1.5v与Gpt-4v的效果对比

Grok-1.5V与GPT-4V的效果对比中,Grok-1.5V在多个领域和基准测试中表现优于GPT-4V。具体来说,Grok-1.5V在多学科推理、文档理解、科学图表处理等方面表现出色[1]。它还特别强调了其在理解物理世界的能力上的优势[4][8][12],并且在RealWorldQA基…

Ansible相关

Ansible 环境准备 主机名ip分组crontol192.168.88.1node1192.168.88.11testnode2192.168.88.12proxynode3192.168.88.13webserversnode4192.168.88.14webserversnode5192.168.88.15database 所有操作只需在crontol上操作即可 安装ansible # 依赖一般也会跟着一起装好 yum …

Redis进阶——相互关注Feed流推送

目录 关注和取消关注业务需求实现步骤效果如下 共同关注业务需求实现步骤效果如下 Feed流实现方案Feed流简介三种Timeline方式三种模式对比 推送到粉丝收件箱业务需求Feed流的滚动分页 实现分页查询收件箱业务需求具体步骤如下 关注和取消关注 业务需求 当我们进入到笔记详情…

数据分析场景,连号相关业务

连号相关业务 业务场景:现在需要从a列一堆编号中,将连号范围在10以内的数据分别分成一组。 先看实先效果 演示的为db2数据库,需要含有窗口函数,或者可以获取到当前数据偏移的上一位数据 第一步:将A列数据正序第二步…

二叉树的遍历(先序,中序,后序,层次遍历)

先序遍历&#xff08;递归和非递归&#xff09;&#xff1a; #include <BiTree.c> #include <SqStack.c> #include <stdio.h>void PreOder(BiTree T) {if (T ! NULL) {visit(T);PreOder(T->lchild);PreOder(T->rchild);} }void PreOrder2(BiTree T) {…