1、简介
搭建Qt For Android开发环境需要安装的软件有:
JAVA SDK (jdk 有apt install 安装)
Android SDK
Android NDK
QT官网的介绍:
Different Qt versions depend on different NDK versions, as listed below:
Qt version | NDK version | Toolchain |
---|---|---|
Qt 5.14.0 or later Qt 5.13.2 or later Qt 5.12.6 or later | NDK r20b or r21 | android-clang |
1.1 NDK
NDK下载页面
NDK-r21e
1.2 SDK
1、下载SDK tools 24.4.1 带GUI
下载SDK 24.4.1 :https://developer.android.google.cn/ndk/downloads/
因为 Qt5.14.2 配套的是SDK 24.4.1,带GUI的,最新版没有GUI了。
tools/android update sdk
启动GUI 下载SDK组件
安卓8.0
使用 sdkmanager 安装 SDK 工具和平台后,您可能需要接受尚未接受的任何许可。您也可以使用 sdkmanager 完成此操作:
$ sdkmanager --licenses
此命令会扫描所有已安装的 SDK 工具和平台,并显示尚未接受的任何许可。系统会提示您接受每个许可。
QT 5.14.2的会自动处理一些情况
Qt自动下载了build-tools 28.0.3
1.3 QtCreator配置
完成1.2 之后,
1、配置好:菜单栏----->工具----->选项----->设备
,如图:
2、配置好:菜单栏----->工具----->选项----->Kit
如果你不使用虚拟机,该说明文档到处结束。注意说明的就是两点:
- NDK版本要正确,21版本
- SDK tools 使用过时的24.4.1 带GUI的,Qt5.14.2 是适配这个的,然后就是安装工具和镜像
2 虚拟机
如果想使用虚拟机调试
2.1、下载最新版 SDK tools (仅限命令行工具)
SDK 工具版本说明
用 sdk manager 命令行版本(command line) 获取SDK。截至2023年10月,sdk有Ui界面的是过时信息,过时的sdk的虚拟机是32位的,因此无法使用,需要安装最新版本sdk tools。
去android官网下载commandlinetools-linux-10406996_latest.zip
从QT的官方信息来看,用sdk manager安装 SDK
After downloading and unpacking the Commandline SDK Tools, use the sdkmanager command line tool to install the essential packages:
安装:
cd <ANDROID_SDK_ROOT>/tools/bin/
./sdkmanager --sdk_root=<ANDROID_SDK_ROOT> --install "cmdline-tools;latest"
./sdkmanager --sdk_root=<ANDROID_SDK_ROOT> --install "platform-tools" "platforms;android-29" "build-tools;29.0.2" "ndk;21.3.6528147"
Android Studio or the Qt Creator’s SDK Manager UI can also be used to install the essential SDK packages.
To use the Android Emulator, install it by entering:
./sdkmanager --sdk_root=<ANDROID_SDK_ROOT> --install "emulator" "patcher;v4"
To run the Android emulator, the following dependencies are also necessary:
sudo apt-get install libsdl1.2debian:i386
2.2 用 avdmanager (command line) 创建虚拟机
1、下载虚拟机的系统镜像
./cmdline-tools/latest/bin/sdkmanager --list
system-images;android-27;android-tv;x86 | 9 | Android TV Intel x86 Atom System Image
system-images;android-27;default;arm64-v8a | 2 | ARM 64 v8a System Image
system-images;android-27;default;x86 | 1 | Intel x86 Atom System Image
system-images;android-27;default;x86_64 | 1 | Intel x86_64 Atom System Image
system-images;android-27;google_apis;arm64-v8a | 3 | Google APIs ARM 64 v8a System Image
system-images;android-27;google_apis;x86 | 11 | Google APIs Intel x86 Atom System Image
system-images;android-27;google_apis_playstore;x86 | 3 | Google Play Intel x86 Atom System Image
2、avdmanager 是一个命令行工具,可以用于从命令行创建和管理 Android 虚拟设备 (AVD)。 avdmanager 工具包含在 Android SDK 命令行工具软件包中(位于 android_sdk/cmdline-tools/version/bin/avdmanager)。
官方介绍用法
创建新的 AVD。您必须为该 AVD 提供 name,并使用加引号的 sdk_id 指定要用于该 AVD 的 SDK 软件包的 ID。例如,以下命令会使用 x86 系统映像(API 级别 25)创建名为 test 的 AVD:
avdmanager [global options] command [command options]
./cmdline-tools/latest/bin/avdmanager create avd -n name -k "sdk_id" [-c {path|size}] [-f] [-p path]
./cmdline-tools/latest/bin/avdmanager create avd -n test -k "system-images;android-27;google_apis;x86"
./cmdline-tools/latest/bin/avdmanager list avd
Available Android Virtual Devices:
Name: test
Path: /root/.android/avd/test.avd
Target: Google APIs
Based on: Android 8.1 ("Oreo") Tag/ABI: google_apis/x86
Sdcard: 512 MB
删除
./cmdline-tools/latest/bin/avdmanager delete avd -n test
3、运行
官方说明
使用命令emulator -avd
运行AVD或通过先前启动的GUI。
您可以使用命令adb install手动安装应用程序。
./emulator/emulator -avd test
现在切换到模拟器,并通过启动器启动您的应用程序,就像在任何正常的设备。
adb shell am start -a android.intent.action.MAIN -n org.sample.helloworld / org.sample.helloworld.HelloWorld。
如果您需要使用提升权限 (root) 来帮助您排查应用问题,您可以使用不包含 Google 应用或服务的 Android 开源项目 (AOSP) 系统映像。然后,您可以使用 adb root 和 adb unroot 命令在普通权限和提升权限之间切换:
% adb shell
emu64a:/ $
emu64a:/ $ exit
% adb root
restarting adbd as root
% adb shell
emu64a:/ #
emu64a:/ # exit
% adb unroot
restarting adbd as non root
% adb shell
emu64a:/ $
emu64a:/ $ exit
%
2.3 即便如此
虚拟机也无法使用Qt编译的aarch的文件,虚拟机是x86的。还是用手机adb调试吧。
参考
https://blog.csdn.net/qq153471503/article/details/128063210
https://blog.csdn.net/wwws1994/article/details/108204186
https://www.eet-china.com/mp/a47680.html
https://developer.android.google.cn/ndk/guides?hl=zh-cn