Qt 5.12.4 build Android apk
1. 概述
目标是在Windows主机上用Qt编译Android apk,在Android目标机上运行。
2. 下载和安装
2.1 安装JDK
jdk-8u101-windows-i586.exe
并将JAVA目录C:\Program Files (x86)\Java\jdk1.8.0_101加入环境变量JAVA_HOME
并将环境变量"%JAVA_HOME%\bin"和"%JAVA_HOME%\jre\bin"加入全局环境变量PATH
2.2 安装QT5.12.4
https://download.qt.io/official_releases/qt/5.12/5.12.4/qt-opensource-windows-x86-5.12.4.exe
组件我选择了全部安装,20多G,实在是有点大。
2.3 下载安装Android NDK
按照官方文档,如果选择”Qt 5.12.0 to 5.12.5“,适配的NDK是NDK r19c
android-ndk-r19c-windows-x86.zip
将NDK解压到C:\Android_NDK\android-ndk-r19c,并将这个路径加入到环境变量NDK_HOME,然后将NDK_HOME加入全局变量PATH
2.4 下载安装Android SDK
由于原先界面版本的Android SDK已经被官方废弃,所以下载command line版本的SDK
commandlinetools-win-7583922_latest.zip
将压缩包解压到C:\Android_SDK_CommandLine\cmdline-tools,并将路径C:\Android_SDK_CommandLine\cmdline-tools\bin加入到环境变量SDK_HOME,然后将SDK_HOME加入全局变量PATH
然后升级SDK
C:\Android_SDK_CommandLine\cmdline-tools\bin\sdkmanager.bat --sdk_root=C:\Android_SDK_CommandLine --install "platform-tools" "platforms;android-29" "build-tools;29.0.2" "ndk;21.3.6528147" C:\Android_SDK_CommandLine\cmdline-tools\bin\sdkmanager.bat --sdk_root=C:\Android_SDK_CommandLine --install "emulator" "patcher;v4" C:\Android_SDK_CommandLine\cmdline-tools\bin\sdkmanager.bat --sdk_root=C:\Android_SDK_CommandLine --install "extras;google;usb_driver"
需要代理的命令类似下面:
.\sdkmanager.bat --sdk_root=C:\Android_SDK_CommandLine --no_https --proxy=http --proxy_host=proxy.bizerba.com --proxy_port=8080 --list
.\sdkmanager.bat --sdk_root=C:\Android_SDK_CommandLine --no_https --proxy=http --proxy_host=proxy.bizerba.com --proxy_port=8080 --install <software>
当然我在有代理的情况下不太成功,最终还是在家在没有代理的情况下升级好,拷贝到了公司用。
3. Qt Creator配置
运行Qt Creator, 点击 Tools -> Options -> Devices -> Android
将C:\Program Files (x86)\Java\jdk1.8.0_101设置在Java Location
将C:\Android_SDK_CommandLine 设置在Android SDK Location
将C:\Android_NDK\android-ndk-r19c设置在Android NDK location
如果Qt Creator识别正确,打勾了的话,环境应该就可以了。
4. 新建测试工程
我之前是卡在这里了,在最后androiddeployqt.exe去deploy的时候,报错。
最开始还以为是代理问题,因为在家里成功的时候,gradle会在这里下载很多支持包。
后来把新建工程的路径挪到了D盘跟目录,就好了,可能是因为我的工程路径里有空格。
最终成功编译了apk
5.安装和卸载APK
我是网络链接的adb,类似这样:
adb connect 172.25.115.199
安装和卸载APK
安装:
adb install <apk name>
查询Package列表,查看package name:
adb shell pm list packages
根据package name卸载APK:
adb shell pm uninstall -k <package name>
参考文献:
https://doc.qt.io/qt-5/android-getting-started.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探