赞
踩
开发环境:
Qt 版本:Qt 5.15.1
环境:Windows 10
JDK:首先自行安装jdk1.8并配置JAVA_HOME环境变量
Android SDK:在 "工具 -> 选项 -> 设备 -> Android" 页面 "SDK Manager"中安装Android SDK
NDK:同上,安装NDK
注意:在 5.15.1中默认SDK和NDK版本为
- {
- "common": {
- "sdk_tools_url": {
- "linux": "https://dl.google.com/android/repository/commandlinetools-linux-6609375_latest.zip",
- "linux_sha256": "89f308315e041c93a37a79e0627c47f21d5c5edbe5e80ea8dc0aac8a649e0e92",
- "windows": "https://dl.google.com/android/repository/commandlinetools-win-6609375_latest.zip",
- "windows_sha256": "40bba20275180194bebf89bb58c74d712bb93cc401f36bd2f8f32383acf9826c",
- "mac": "https://dl.google.com/android/repository/commandlinetools-mac-6609375_latest.zip",
- "mac_sha256": "2c3822db1c916655223e5ee8ce0fbf6b73d0b99012045c9dc8eaa6a5736c0c55"
- },
- "sdk_essential_packages": {
- "default": ["platform-tools", "platforms;android-30", "cmdline-tools;latest"],
- "linux": [],
- "mac": [],
- "windows": ["extras;google;usb_driver"]
- }
- },
- "specific_qt_versions": [
- {
- "versions": ["default"],
- "sdk_essential_packages": ["build-tools;30.0.2", "ndk;21.3.6528147"],
- "ndk_path": "ndk/21.3.6528147"
- },
- {
- "versions": ["5.12.[0-5]", "5.13.[0-1]"],
- "sdk_essential_packages": ["build-tools;28.0.2", "ndk;19.2.5345600"],
- "ndk_path": "ndk/19.2.5345600"
- }
- ]
- }
不知道安装那个版本时最好按照这个选择,这个配置文件在 C:\用户\AppData\Roaming\QtProject\qtcreator\android\sdk_definitions.json
OpenSSL:Android版的OpenSSL从GitHub上找一个预编译好的即可
虚拟机:简单点可以直接使用自带虚拟机,创建一个AVD,不知道选哪个就多试几个,看看有什么区别,懒得弄插上USB线,打开USB调试,直接上真机。
注意:安装Android SDK时最好选上对应的System Image,创建AVD的时候会用到。
Qt 5提供了 androiddeployqt 工具用于打包apk,当使用 Qt for Android 工具包部署应用程序时,Qt Creator 使用 androiddeployqt 工具创建必要的文件并将它们捆绑到 APK 中:
仅当您使用 Gradle 构建应用程序包时,才会捆绑 Gradle wrappers 和脚本。
要查看 androiddeployqt 工具创建的包,请选中 Open package location after build 复选框(实测并不能打开包所在目录)。
这里可以选择apk包中包含的API库,默认armeabi-v7a,要支持全平台,可以选择全部打进去,但体积会比较大。
注意:在上面 sdk_definitions.json配置文件中指定的,对于 Qt 5.12.0 - 5.12.5 和 Qt 5.13.0 - 5.13.1,应使用 Android SDK 28。对于比 Qt 5.13.1 更新的版本,应使用Android SDK 29 或最新版本。
如图,可以选择生成自己的签名证书,SDK版本。通常应该选择可用的最高 API 级别。
androiddeployqt 工具使用配置信息来创建 APK。有关可用选项的更多信息,请参阅 androiddeployqt。
您可以在 "编译输出" 窗格中查看有关 androiddeployqt 工具正在执行的操作的信息。要查看其他信息,请选中 Verbose output 复选框。
选择 Add debug server 以将调试服务器二进制文件包含到包中(不可选)。
此字段未指定支持的最低 API 级别或目标 API 级别,您可以在 Android Manifest 中指定。见 Editing Manifest Files 。
本地测试应用,使用APK格式,因为包可以直接上传到设备上运行。要分发到 Google Play 商店,请通过选中 Build Android App Bundle (*.aab) 复选框来创建 AAB。
使用 CMake 构建时,您可以在 CMake 部分的 Initial Configuration 中查看选定的 ABI。您可以将其他 ABI 设置为 ANDROID_ABI 键的值:
如上图,使用 Qbs 或 qmake 构建时,您可以在 Build Steps 的 ABIs 字段中选择 ABI。
注意:没有密钥签名只能打出debug的包,签名后才能发布release包。
警告:将密钥对保存在安全的地方并备份副本,因为如果丢失密钥对,您将无法更新应用程序。
创建密钥库和自签名证书:
注意:国家代码是必填的,中国是 ZH
使用C++开发中免不了要用到外部库,例如openssl,ffmpeg,opencv等, 就像 windeployqt ,linuxdeployqt一样,androiddeployqt也不能自动打包外部库,需要手动配置,在 Projects > Build > Build Android APK > Additional Libraries 字段中指定它们。这些库被复制到应用程序的库文件夹中并在启动时加载。
要添加 OpenSSL 库,请在 Additional Libraries 组中选择 Include prebuilt OpenSSL libraries 。这将添加在 Android OpenSSL 组的设备设置中定义的 OpenSSL 包含项目。这可用于 QMake 和 CMake 项目。
否则,您可以手动将所需 libssl.so 和 libcrypto.so 库的路径添加到 Additional Libraries 字段。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。