Windows下QtCreator+android编译环境配置

Windows下QtCreator+android编译环境配置

通过Qt Creator与android sdk ndk配置windows下的android编译环境

一、 安装QtCreator

复制代码
1,windows10可安装Qt5.15.2版本,安装时需选择android编译选项
2,windows7可安装Qt5.12.12版本,安装时需选择andriod编译选项

注:win7安装Qt5.15.2后,对应QtCreator无法运行,原因可能与QtCreator版本有关。

注:经测试,win7中只能安装QtCreator 6以下的版本,否则无法运行。Qt5.15.2自带的QtCreator版本过高,在win7下无法运行。

二、 安装Android studio

安装后,在android studio和Tools->sdk manager窗口中选择安装sdk

可参考上图选择安装

注:此页面可设置sdk的安装路径。

三、 安装JDK

注:可安装1.8版本以上,如 jdk-8u191-windows-x64-8.0.1910.12.exe 或 jdk-11.0.22_windows-x64_bin.exe

注:安装android studio时jdk可能自动安装了,可先设定第四步中的JDK路径,有问题再单独安装

注**:QTCreator版本过高时****,上述jdk可能不满足,实测QTCreator10****.0.2及以下可用****。**

四、 在QtCreator中配置设备Android

图示为Qt Creator 8.0.1,在低版本QtCreator中可能会有些差异

1,如上图,设置JDK安装路径

2,设置Android sdk路径(安装android studio时会安装),并会列出已有的NDK list

3,缺少相关组件时,qtcreator会弹窗可自动下载相关组件

4,设备配置OK后,配置工程时可在Kits中可选择android kit(QT5.12.12一般为arm64-v8a, Qt5.15.2的就不分平台,需在build步骤中配置平台)

五、 具体编译配置

以下说明都以QT Creator8.0.1, QT5.15.2版本为例,不同的版本会有些差异。

编辑此区域

5.1、SDK编译配置
● 编译选择ndk22.1版本

如图所示,在Android NDK list中,斜体字的一行为当前生效的NDK版本,若要切换,选中需切换的一行,点击右侧的【Unset Default】按键,可将其切换为生效的NDK版本。

● 编译套件选择

选择QT5.15.2版本,并在右侧的Build步骤中,设置ABIs为arm64-v8a。

进行上述配置后基本就可以进行sdk编译了,需注意的是由于Qt5.15以上版本原因,编译出来的库名会自动带上_arm64-v8a的后缀,暂未找到自动去除的方法。

5.2、apk程序生成配置

自动生成android程序配置

如图,选择platform SDK 版本后,点击【Create templates】按键,可自动生成android的程序配置文件。

注:若之前已生成,可以不需重复生成,但切换sdk版本后,是否需重新生成,暂未知。

注:在实际使用中,之前在QT5.12.12中已设置好的配置,在QT5.15.2中使用时,出现过app运行时白板的问题。建议工程使用的QT版本有变化后最好重新生成。

android配置

如图,在AndroidManifest.xml中,可配置package name,设置mini sdk和Target SDK,以及添加相关的权限设置。

android设备的权限申请

android设备的许多操作需要有权限申请,在配置中设置权限后,有些权限仍需向设备进行弹窗申请。一般需要进行下述权限申请。

demo中文件路径的设置

由于android设备的权限问题,一般app安装的位置是没有权限进行读写操作的,因此需要设备app程序的相关路径。

注:插件库在生成apk时已经自动打包到了程序目录,因些插件目录需设置到app所在目录。

demo pro中配置生成apk时需要打包的配置

设备调试

可以通过USB连接设备(如手机),手机中需(开发者选项,不同设备可能有差异)打开USB调试和USB安装。

连上后,在Device中选择连接的设备,启动调试,构建成功后,可自动安装apk到手机中并启动,如果有异常在QTCreator的应用程序输出窗口中会有异常信息。

注:若不确定设备信息,可以在QT设置中查看设备的连接状态和基本信息。

相关推荐
木头左1 小时前
【架构设计】教育类 App 服务端化改造:AI 上移、题库分层与个人题库归属
android·架构设计·系统设计·后端开发·数据库设计
敲上瘾1 小时前
Qt Widgets入门:项目模板解析与Hello World
开发语言·数据库·c++·qt·ui·qt6.3
墨狂之逸才2 小时前
USB 的 HOST 和 DEVICE 到底有什么区别?ADB 调试应该选哪个?
android
奶油话梅糖3 小时前
苹果的内核跑上了安卓手机:2,631 Star 的 HakiOS 让 XNU 在 Adreno GPU 上画出 118 帧
android·macos·智能手机
恋猫de小郭3 小时前
Flutter THLC 的 WebView 滚动终于从 70 FPS 提升到 120 FPS
android·前端·flutter
叼烟扛炮13 小时前
[LangChain] 学习笔记(06):突破大模型限制——结构化输出(Structured Output)
windows·笔记·学习·langchain
好的佩奇14 小时前
Dart 之扩展类型
android·flutter·dart
alexhilton16 小时前
2027 Android 开发者路线图:学习、面试与 AI
android·kotlin·android jetpack
MOONICK17 小时前
QT元数据
开发语言·qt
灿飞屋18 小时前
Kotlin与Java虚拟机三:控制流
android·java·开发语言·后端·python·kotlin·安卓