平台
Ubuntu 20.04 + QT5.13 + Qt Creator 4.10.1
安装QT
QT官网
1.注册个帐户吧, 后续安装会用到
2.Install Qt 5 on Ubuntu
3.下载离线安装包可用版本
4.安装(qt-opensource-linux-x64-5.13.2.run) 改权限, 直接运行.
5.参考文档: 在Ubuntu下搭建Qt开发环境和Qt creator
6.Tools > Options > Devices > Android 配置Android SDK 和 NDK
装完后, 从主界面的DEMO中选了一个ImageViewer, 在Ubuntu上编译运行, 正常正确, 感觉一切来得如此简单.
开发Android问题
有两个条件不满足:
Android NDK directory structure is correct
Android NDK installed into a path without spaces
NDK的路径选择的是与AndroidStudio一样的, 并且这个版本的NDK也是可用的(版本: 22.0.6917172)
刚开始, 选择忽略了上面的问题, 强行编译后出现以下features.h头文件找不到
尝试搜索问题的答案, 结果一无所获, 参阅过文章:
Missing library #include <features.h> #688
Qt 5.14 New Installation ~ Error
Custom kit (self-compiled Qt 5.9) : features.h not found
于是, 不得不回过头来解决NDK的问题, 既然这个版本检测不能用, 那用哪个版本就成了问题的关键,
很快有了答案Qt for Android - Building from Source
其中有提及到Android NDK r18
不受支持的 NDK 下载
android-ndk-r18b-linux-x86_64.zip
下载解压配置, clean 后重编, 成功.
一些杂项
在主界面左侧的主功能键中Projects
可以设置编译目标, 如Desktop, Android等, 点击可添加, 已有的可通过右键 Disable掉
最好设置Build directory 免得有时找不到文件
在Android的编译过程中, 目录结构如下:
ll work/build/android-build
drwxrwxr-x 8 anson anson 4096 2月 28 22:00 ./
drwxrwxr-x 3 anson anson 4096 2月 28 22:00 …/
-rw-r–r-- 1 anson anson 6604 2月 28 22:00 AndroidManifest.xml
drwxrwxr-x 3 anson anson 4096 2月 28 22:00 assets/
drwxrwxr-x 6 anson anson 4096 2月 28 21:59 build/
-rw-r–r-- 1 anson anson 1891 2月 28 21:58 build.gradle
drwxrwxr-x 5 anson anson 4096 2月 28 21:59 .gradle/
drwxrwxr-x 3 anson anson 4096 2月 28 21:16 gradle/
-rw-rw-r-- 1 anson anson 147 2月 28 22:00 gradle.properties
-rw-rw-r-- 1 anson anson 147 2月 28 21:59 gradle.properties~
-rwxr-xr-x 1 anson anson 5296 2月 28 21:16 gradlew*
-rw-r–r-- 1 anson anson 2176 2月 28 21:16 gradlew.bat
drwxrwxr-x 3 anson anson 4096 2月 28 22:00 libs/
-rw-rw-r-- 1 anson anson 32 2月 28 22:00 local.properties
-rw-rw-r-- 1 anson anson 32 2月 28 21:59 local.properties~
drwxrwxr-x 3 anson anson 4096 2月 28 21:16 res/