首页 > 其他分享 >Qt for Android的配置方法及遇到的常见问题

Qt for Android的配置方法及遇到的常见问题

时间:2024-11-30 15:29:38浏览次数:12  
标签:Task Qt -- 常见问题 64 build Android android

一、Qt for Android的配置方法:

  1. 安装正确版本的Java JDK(经测试,qt 6.7.3版本对应于Java JDK 17),并在环境变量中进行添加,Windows控制台使用命令java --version可验证环境变量是否添加成功并查看安装的Java版本。
  2. 在Qt creator中进行配置:
    2.1 配置JDK位置后,点击设置SDK可以自动下载对应的Android-SDK套件,按照系统引导一直点确定即可。
    在这里插入图片描述
    下载好以后点击SDK管理器,搜索Android emulator勾选应用以安装对应的安卓模拟器。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    2.2 点击下载openSSL跳转GitHub仓库,download对应的zip文件,解压到自定义位置,然后回到Qt creator进行位置添加即可。
    在这里插入图片描述
    在这里插入图片描述
    2.3 在设备中添加安卓设备,架构取决于安装的SDK套件,如果没有可以回到SDK管理器进行下载,我这里选择x86_64,后续编译也是使用x86_64,设备名称不限,其余默认即可。(目标api的选择影响后续的配置)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    2.4 添加了安卓模拟器后可以点击启动AVD进行查看,如果无法打开则:
    控制面板-卸载程序-启动或关闭Windows功能-打开Hyper-V-重启电脑
    在这里插入图片描述
    打开后模拟器后应该如下图所示:
    在这里插入图片描述
    如下图,在构建套件界面可以看到安卓构建套件已安装完毕。
    在这里插入图片描述
    新建安卓项目,运行即可。(有的人在新建项目进行运行后会提醒需要再下载一个套件,详情可参考网上经验,笔者由于安装过程中没遇到该问题,因此不在此赘述)

二、 遇到的问题及其解决方法:

1. 问题一:
Generating Android Package Input file: E:/code/Qt/AndroidPhone/build/Qt_6_5_3_Clang_x86_64-Debug/android-AndroidPhone-deployment-settings.json Output directory: E:/code/Qt/AndroidPhone/build/Qt_6_5_3_Clang_x86_64-Debug/android-build/ Application binary: AndroidPhone Android build platform: android-29 Install to device: No FAILURE: Build failed with an exception. * What went wrong: A problem occurred configuring root project ‘android-build’. > Could not open cp_proj generic class cache for build file ‘E:\code\Qt\AndroidPhone\build\Qt_6_5_3_Clang_x86_64-Debug\android-build\build.gradle’ (C:\Users.gradle\caches\8.0\scripts\et9x1nmdyrg8ikokvipr8cqkb). > BUG! exception in phase ‘semantic analysis’ in source unit ‘BuildScript’ Unsupported class file major version 67 * 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 BUILD FAILED in 639ms Building the android package failed! – For more information, run this command with --verbose. Skipping createRCC 16:44:27: 进程"D:\Qt\6.5.3\mingw_64\bin\androiddeployqt.exe"退出,退出代码 14 .
Error while building/deploying project AndroidPhone (kit: 安卓 Qt 6.5.3 Clang x86_64) When executing step “构建安卓 APK”

问题分析:Java JDK版本不匹配
解决方法:安装了高版本的Java JDK,将Java JDK 23修改为Java JDK 17

2. 问题二:
Generating Android Package Input file: E:/code/Qt/AndroidTest/build/Qt_6_5_3_Clang_x86_64-Debug/android-AndroidTest-deployment-settings.json Output directory: E:/code/Qt/AndroidTest/build/Qt_6_5_3_Clang_x86_64-Debug/android-build/ Application binary: AndroidTest Android build platform: android-29 Install to device: No Skipping createRCC Starting a Gradle Daemon, 2 incompatible and 3 stopped Daemons could not be reused, use --status for details > Task :preBuild UP-TO-DATE > Task :preDebugBuild UP-TO-DATE > Task :mergeDebugNativeDebugMetadata NO-SOURCE > Task :compileDebugAidl NO-SOURCE > Task :compileDebugRenderscript NO-SOURCE > Task :generateDebugBuildConfig > Task :javaPreCompileDebug > Task :checkDebugAarMetadata > Task :generateDebugResValues > Task :mapDebugSourceSetPaths > Task :generateDebugResources > Task :createDebugCompatibleScreenManifests > Task :extractDeepLinksDebug > Task :processDebugMainManifest package=“org.qtproject.example.AndroidTest” found in source AndroidManifest.xml: E:\code\Qt\AndroidTest\build\Qt_6_5_3_Clang_x86_64-Debug\android-build\AndroidManifest.xml. Setting the namespace via a source AndroidManifest.xml’s package attribute is deprecated. Please instead set the namespace (or testNamespace) in the module’s build.gradle file, as described here: https://developer.android.com/studio/build/configure-app-module#set-namespace This migration can be done automatically using the AGP Upgrade Assistant, please refer to https://developer.android.com/studio/build/agp-upgrade-assistant for more information. > Task :mergeDebugResources > Task :processDebugManifest > Task :mergeDebugShaders > Task :compileDebugShaders NO-SOURCE > Task :generateDebugAssets UP-TO-DATE > Task :mergeDebugAssets > Task :compressDebugAssets > Task :processDebugJavaRes NO-SOURCE > Task :checkDebugDuplicateClasses > Task :mergeDebugJavaResource > Task :mergeLibDexDebug > Task :mergeDebugJniLibFolders > Task :desugarDebugFileDependencies > Task :mergeDebugNativeLibs > Task :validateSigningDebug > Task :writeDebugAppMetadata > Task :writeDebugSigningConfigVersions > Task :processDebugManifestForPackage > Task :mergeExtDexDebug > Task :stripDebugDebugSymbols > Task :processDebugResources FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ‘:processDebugResources’. > A failure occurred while executing com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask$TaskAction > Android resource linking failed E:\code\Qt\AndroidTest\build\Qt_6_5_3_Clang_x86_64-Debug\android-build\build\intermediates\packaged_manifests\debug\AndroidManifest.xml:22: error: attribute android:allowNativeHeapPointerTagging not found. error: failed processing manifest. * 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 BUILD FAILED in 1m 5s 26 actionable tasks: 26 executed Building the android package failed! – For more information, run this command with --verbose. 17:33:01: 进程"D:\Qt\6.5.3\mingw_64\bin\androiddeployqt.exe"退出,退出代码 14 。
Error while building/deploying project AndroidTest (kit: 安卓 Qt 6.5.3 Clang x86_64) When executing step “构建安卓 APK”

问题分析:属性 android:allowNativeHeapPointerTagging 未找到
解决方法:打开 D:\Qt\6.5.3\android_x86_64\src\android\templates\build.gradle 文件,检查并修改以下字段:
android {
compileSdkVersion 31 // 确保这里是至少 API 31
defaultConfig {
minSdkVersion 21
targetSdkVersion 31 // 确保目标 SDK 是 31 或更高
}
}

标签:Task,Qt,--,常见问题,64,build,Android,android
From: https://blog.csdn.net/weixin_51327585/article/details/144146317

相关文章

  • Android 13.0 系统Settings横屏状态下wifi扫码不能识别功能修复
    1.前言在13.0的系统rom产品定制化开发过程中,在对于wifi扫描二维码的时候,可以看到相关的wifi信息,在竖屏的情况下不会有什么问题,但是如何在系统settings横屏的情况下扫描wifi的二维码的时候,发现识别不了,接下来就来分析下相关的wifi扫描相关流程,看如何实现相关功能2.系统Sett......
  • 快速安装 Qt 的各种方法
    1在Windows下快速安装Qt由于QT的服务器在国外,而国内通国外的网络往往不够流畅,因此在下载QT时我们经常会出现下载中断的问题。一个好的解决办法是在安装程序时替换下载源,下面我以中科大源为例子,替换QT的下载源。1.1下载Qt安装器首先点击download-open-source下载Qt安......
  • 【QNX+Android虚拟化方案】123 - 如何配置qnx侧GPIO_IRQ中断和PMIC_GPIO_IRQ中断
    【QNX+Android虚拟化方案】123-如何配置qnx侧GPIO_IRQ中断和PMIC_GPIO_IRQ中断基于原生纯净代码,自学总结纯技术分享,不会也不敢涉项目、不泄密、不传播代码文档!!!本文禁止转载分享!!!汇总链接:《【QNX+Android虚拟化方案】00-系列文章链接汇总》本文链接:《【QNX+An......
  • Qt运行生成的exe报错“This application failed to start because no Qt platform plu
    Qt运行生成的exe报错“ThisapplicationfailedtostartbecausenoQtplatformplugincouldbeinitialized.Reinstallingtheapplicationmayfixthisproblem.”报错复现将exe复制一份至单独文件夹中,直接运行会发现报错缺少一些dll去Qt根目录D:\QT\Qt\5.15.0\mingw8......
  • QTableView的在PySide6中的使用
    importsysfromPySide6importQtCore,QtWidgetsfromPySide6.QtCoreimportQAbstractTableModel,QtfromPySide6.QtWidgetsimportQApplication,QMainWindow,QWidgetimportpandasaspdfromui_tableviewimportUi_FormclassDataFrameModel(QAbstractTableMod......
  • Android系统资源管理与电池优化策略详解
    Android系统作为全球最流行的移动操作系统之一,其性能优化一直是开发者和用户关注的焦点。在有限的硬件资源下,如何高效地管理资源并延长电池续航,是提升用户体验的关键。本文将聚焦于Android系统的资源管理策略,特别是内存管理、进程管理,以及电池优化方面,进行深入探讨。资源管理策略......
  • Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件
    CellebriteUFED4PC7.71(Windows)-Android和iOS移动设备取证软件TheIndustryStandardforLawfullyAccessingandCollectingDigitalData请访问原文链接:https://sysin.org/blog/cellebrite-ufed/查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgC......
  • Cellebrite UFED 4PC 7.70 (Windows) - Android 和 iOS 移动设备取证软件
    CellebriteUFED4PC7.70(Windows)-Android和iOS移动设备取证软件TheIndustryStandardforLawfullyAccessingandCollectingDigitalData请访问原文链接:https://sysin.org/blog/cellebrite-ufed/查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgC......
  • 【微信小程序】常见问题-尺寸单位转换
    在微信小程序开发中,尺寸单位的正确使用和转换是非常重要的,因为这直接影响到页面布局的美观性和用户体验。微信小程序推荐使用rpx作为尺寸单位,这是一种响应式的单位,可以根据屏幕宽度进行自适应。然而,在某些情况下,开发者可能需要在rpx、px、rem、vw等单位之间进行转换。以......
  • psi 跟Android内存优化
    概述lowmemorykiller的作用就是当内存比较紧张的时候去及时杀掉一些对用户来说不那么重要的进程,回收内存,保证手机的正常运行。安卓平台lowmemorykiller机制演进可以描述为:从早期的KernelspaceLowmemorykiller到UserSpaceLowmemorykiller(监听vmpressure),再到UserSpaceL......