news 2026/8/11 3:48:41

QGroundControl 5.0 安卓开发环境搭建实战:从零编译到成功运行

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
QGroundControl 5.0 安卓开发环境搭建实战:从零编译到成功运行

最近准备把地面站项目升级到 QGroundControl 5.0,于是重新搭建了一套 Android 开发环境。

原本以为和 QGC 4.x 差不多,结果一上来就连续踩坑:

  • Qt版本不匹配

  • Android Kit不显示

  • NDK版本错误

  • Gradle构建失败

折腾了几个小时后终于成功编译并运行在安卓手机上。

本文记录完整过程,希望帮大家少走弯路。

一、QGC 5.0 与 QGC 4.x 的区别

很多人直接按照以前的 QGC 4.3、4.4 教程配置环境,结果发现根本编译不过。

原因是官方已经完成了技术栈升级。

QGC 4.x

Qt 5.15.2 qmake JDK 11 NDK r21

QGC 5.0

Qt 6.8.3 CMake JDK 17 NDK 26.1

官方文档明确说明:

Qt 6.8.3 only

不要使用其它 Qt 版本。

否则即使编译通过,也可能出现稳定性问题。

二、安装 Visual Studio 2022

虽然最终编译使用的是 Qt Creator + CMake。但是,MSVC 编译器必须安装下载:

Visual Studio 2022 Community

安装时勾选:

Desktop development with C++

其余内容保持默认即可。

很多新手遗漏这一步,导致 Qt Creator 无法生成有效 Kit。

这里安装vs主要是编译Windows版本,因为安卓开发代码很慢,我们一般用Window编译调试,然后移植安卓比较节约时间。

三、安装 Android Studio

下载安装最新版 Android Studio。

安装完成后打开:

SDK Manager

建议安装:

Android SDK Platform 34

Android SDK Build Tools

Android Platform Tools

Android Command Line Tools

安装完成后记录:SDK路径

后面 Qt Creator 会用到。

四、安装 Qt 6.8.3

这里是整个环境最关键的一步。

千万不要安装:Qt 6.5 Qt 6.6 Qt 6.7 Qt 6.9

QGC 5.0 官方指定版本:

Qt 6.8.3

安装 Qt Online Installer。

选择:

Custom Installation

如果看不到:

Qt 6.8.3

需要勾选:

Archive

然后刷新版本列表。

五、Qt 组件选择

推荐勾选:

Desktop

Qt 6.8.3── MSVC2022 64-bit

Android

Qt 6.8.3── Android

qt安装成功后,直接测试编译Window版本的QGC:

windows版本的环境比较简单,直接打开cmakeList然后编译就可以,一路都很顺畅,成功编译:

测试下视频流:

六、安装 JDK17

QGC 5.0 官方 Android 构建要求:

JDK17

很多老教程还在使用:

JDK11

这是 QGC 4.x 的方案。

如果继续使用旧JDK,Gradle经常报错。

建议直接安装:

OpenJDK 17

或者:

Android Studio 自带 JDK

七、配置 Android NDK

官方推荐:

NDK 26.1.8937393

在 Android Studio:

SDK Manager→ SDK Tools→ NDK(Side by side)

安装对应版本。

安装完成后记录:

NDK路径

例如:

D:\Android\Sdk\ndk\26.1.8937393

八、下载 QGroundControl 源码

官方仓库:

git clone --recursive -j8

https://github.com/mavlink/qgroundcontrol.git

这里一定要注意:

不要下载 ZIP

很多人喜欢:

Download ZIP

然后发现:编译失败

原因是:

Submodule 丢失

QGC 官方明确要求:

必须使用 Git Clone

九、更新子模块

首次拉取完成后执行:

git submodule update --init --recursive

后续每次更新代码:

git pull

git submodule update --recursive

这是很多编译错误的根源。

十、配置 Qt Creator

打开:

Qt Creator

进入:

Edit→ Preferences→ Devices→ Android

配置:

JDK SDK NDK

配置正确后应该出现:

Android Kits

例如:

Qt 6.8.3 Android ARM64-v8a

如果这里为空:

通常是 SDK、NDK 或 JDK 路径配置错误。

十一、打开 QGC 工程

QGC 5.0 不再使用:

qgroundcontrol.pro

而是:

CMakeLists.txt

直接:

Open Project选择:CMakeLists.txt即可。

这里会报错:

gstreamer错误

需要改下源码cmake

重新运行cmake后:

十二、选择 Android Kit

配置项目时选择:

Qt 6.8.3 Android ARM64-v8a

建议先构建:

Release

不要选 Debug。

原因很简单:

Debug APK 特别大启动很慢

十三、开始编译

点击:

Build

或者执行:

cmake--build build--config Release

首次编译时间比较长。

因为需要:

生成QML缓存编译Qt模块链接Android库生成APK

十四、连接手机运行

手机开启:

开发者模式USB调试

连接电脑后:

Qt Creator→ Run

Qt 会自动执行:

adb install

安装 APK。

十五、常见踩坑

1. Android Kit 不显示

原因通常是:

SDK未配置 NDK未配置 JDK未配置

或者:

Qt安装时没勾选Android组件

2. Gradle 构建失败

优先检查:

JDK版本

QGC 5.0:

JDK17

最稳。

3. Qt Creator 找不到 Qt 6.8.3

安装 Qt 时:

必须勾选 Archive

否则历史版本不会显示。

4. QML 插件缺失

典型错误:

Qt Quick.Controls plugin not found

通常是:

QML依赖未正确部署

删除构建目录后重新生成,大多数情况可以解决。

5. Android 视频显示异常

QGC 的视频系统主要基于:

GStreamer

相关代码位于:

src/VideoManagersrc/VideoReceiver

如果计划接入:

FFmpeg MediaCodec自定义UDP视频流

这里将是后续二次开发重点。

十六、总结

QGroundControl 5.0 的安卓开发环境虽然比 4.x 更复杂,但整体架构也更加现代化。

核心版本组合建议直接固定:

QGC 5.0

Qt 6.8.3

Visual Studio 2022

JDK 17

Android SDK 34

NDK 26.1

只要版本完全对应,基本都能顺利完成编译。

环境搭建只是开始。

真正有意思的部分,其实都在后面:

• MAVLink 通信机制与协议扩展• SITL 多机仿真与集群测试• 多路视频显示• FFmpeg / MediaCodec 低延迟解码优化• 地图系统与航线规划开发• 3D 飞行视图与OpenGL渲染• 集群编队与协同飞行控制

后续我将持续分享 QGroundControl 二次开发实战,从环境搭建到功能开发,从源码阅读到项目落地,记录探索无人机地面站开发的核心技术。

感兴趣的朋友请关注我,关注后回复“5.0源码”即可获取对应的源码。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/11 3:47:30

大气层系统深度技术指南:从源码结构到高级配置的完全解析

大气层系统深度技术指南:从源码结构到高级配置的完全解析 【免费下载链接】Atmosphere-stable 大气层整合包系统稳定版 项目地址: https://gitcode.com/gh_mirrors/at/Atmosphere-stable 大气层系统(Atmosphere)是一个为Nintendo Swit…

作者头像 李华
网站建设 2026/8/11 3:44:35

脑机设备进入多校区后,怎样保证教学交付不走样?

脑机设备进入多校区后,怎样保证教学交付不走样? 直接答案:大型教育机构引入脑机设备后,真正要复制的不是机器数量,而是一套可检查的教学质量标准。至少要统一学生测评、训练内容、设备操作、出舱检测、复现记录、教师认…

作者头像 李华
网站建设 2026/8/11 3:42:52

从Dota 2 AI比赛到实战:构建游戏数据分析与预测模型

如果你是一名《Dota 2》的普通玩家,或者只是偶尔看看比赛,看到“DFC 2026 半决赛败者组 relax famosuc vs C4stem”这个标题,可能会一头雾水。这串字母组合看起来像某种神秘的代码,或者某个小众赛事的内部代号。但如果你是一名深度…

作者头像 李华
网站建设 2026/8/11 3:40:22

从零构建会思考的AI智能体:基于ReAct框架的自主决策系统开发实践

1. 项目概述:从“执行”到“思考”的跨越 最近和几个做产品的朋友聊天,大家都有一个共同的感受:现在市面上的AI应用,无论是聊天机器人还是自动化工具,大多还停留在“你问我答”或“你指令我执行”的层面。它们很强大&a…

作者头像 李华
网站建设 2026/8/11 3:39:33

Python数据分析全流程实战:从数据清洗到模型部署的完整指南

1. 项目概述:从数据到洞察的旅程 “Python数据分析的过程记录”这个标题,听起来像是一份个人工作日志,但它背后蕴含的,其实是每一位数据从业者从原始数据中挖掘价值、形成决策支撑的完整工作流。我干了十多年数据分析,…

作者头像 李华
网站建设 2026/8/11 3:37:17

抖音批量下载终极指南:免费工具一键搞定无水印视频

抖音批量下载终极指南:免费工具一键搞定无水印视频 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support.…

作者头像 李华