1. 概述
目标是在Qt编译Android apk,在Android目标机上运行。
安装软件等新建目录不留空格。除系统外,其它软件不安装在C盘
编译输出版本最高 API 28 Android 9 最低 API 16 Android 4.1
编译SDK 最高 Android 29 (对应API29 Android 10),如果要开发 android service 后台程序,要安装 版本build-tools 最高为 28.0.2 。
安装一个android studio,可以在里面下载所须要的 SDK 和 NDK
https://developer.android.google.cn/studio/archive?hl=zh-cn
2. 下载和安装
2.1 安装JDK
jdk-8u256
设置JAVA环境变量:
在JAVA_HOME中加入D:\ProgramFiles\Java\jdk1.8.0_256,
在PATH中加入"%JAVA_HOME%\bin";"%JAVA_HOME%\jre\bin";
2.2 安装QT5.12.2
https://download.qt.io/official_releases/qt/5.12/5.12.2/qt-opensource-windows-x86-5.12.2.exe
依需求安装组件,Qt 5实在是有点大。
2.3 下载安装Android NDK
按照官方文档,如果选择”Qt 5.12.0 to 5.12.5“,适配的NDK是NDK r19c
android-ndk-r19c.....
https://developer.android.google.cn/ndk/downloads/older_releases?hl=zh-cn#ndk-19c-downloads
将NDK解压到 D:\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,D:\Android_SDK_CommandLine\cmdline-tools\bin加入到环境变量SDK_HOME,然后将SDK_HOME加入全局变量PATH
然后升级SDK
D:\Android_SDK_CommandLine\cmdline-tools\bin\sdkmanager.bat --sdk_root=D:\Android_SDK_CommandLine --install "platform-tools" "platforms;android-29" "build-tools;29.0.2" "ndk;21.3.6528147" D:\Android_SDK_CommandLine\cmdline-tools\bin\sdkmanager.bat --sdk_root=D:\Android_SDK_CommandLine --install "emulator" "patcher;v4" D:\Android_SDK_CommandLine\cmdline-tools\bin\sdkmanager.bat --sdk_root=D:\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
将D:\ProgramFiles\Java\jdk1.8.0_256设置在Java Location
将D:\Android_SDK_CommandLine 设置在Android SDK Location
将D:\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