# Android (Qt 6.9) + GStreamer: how do I build/enable qml6glsink? “Needs a windowing backend” on Android

**URL:** https://discourse.gstreamer.org/t/android-qt-6-9-gstreamer-how-do-i-build-enable-qml6glsink-needs-a-windowing-backend-on-android/4965
**Category:** Build issues
**Tags:** android
**Created:** [August 15, 2025, 10:14pm UTC](https://discourse.gstreamer.org/t/android-qt-6-9-gstreamer-how-do-i-build-enable-qml6glsink-needs-a-windowing-backend-on-android/4965 "2025-08-15T22:14:26Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![raphaelscholle](https://discourse.gstreamer.org/user_avatar/discourse.gstreamer.org/raphaelscholle/32/1455_2.png) [@raphaelscholle](https://discourse.gstreamer.org/u/raphaelscholle)
#### Post date: [August 15, 2025, 10:14pm UTC](https://discourse.gstreamer.org/t/android-qt-6-9-gstreamer-how-do-i-build-enable-qml6glsink-needs-a-windowing-backend-on-android/4965/1 "2025-08-15T22:14:26Z")

</div>

**Goal**  
Get `qml6glsink` working on Android with Qt 6.9 (QML + GStreamer).

**Context**  
I’m building GStreamer for Android inside a GitHub Actions runner so the setup is fully reproducible and clean. Workflow is here (exact steps + flags in YAML):  
[https://github.com/OpenHD/gst-full-android/blob/main/.github/workflows/compile.yml](https://github.com/OpenHD/gst-full-android/blob/main/.github/workflows/compile.yml)

**What happens**  
The build (or runtime) tells me I need a “windowing backend.” On Android there isn’t a traditional windowing system, so I’m unsure which backend `qml6glsink` expects and how to enable it in the build.

**What I think is going on**  
`qml6glsink` uses GStreamer-GL under the hood. On Android that should mean EGL/`ANativeWindow` rather than X11/Wayland. I suspect I’m missing the correct GStreamer-GL platform toggles (or Qt6 integration bits) when building for Android.

**Questions**

1. Which Meson/CMake options are required to build `qml6glsink` for Android?

2. Are there Qt6-specific flags or headers I must point to so that `qml6glsink` picks up the right Qt/GL integration on Android?

3. Is `qml6glsink` the recommended sink on Android with Qt 6.9 today, or should I use a different sink/approach?

4. If the “windowing backend” error typically means “GStreamer-GL wasn’t built with the Android platform,” what are the minimal toggles to flip in a headless CI environment?

**Build details**

- Target: **Android** (AAB/APK)

- Qt: **6.9**

- GStreamer: (from the workflow)

- Toolchain/NDK: (from the workflow)

- Repro steps: run the GitHub workflow above

Any pointers on the exact flags or a minimal working example for `qml6glsink` on Android would be amazing. Thanks!

---

<div class="post-metadata">

### Author: ![ystreet00](https://discourse.gstreamer.org/letter_avatar_proxy/v4/letter/y/3d9bf3/32.png) [@ystreet00](https://discourse.gstreamer.org/u/ystreet00)
#### Post date: [August 16, 2025, 8:11am UTC](https://discourse.gstreamer.org/t/android-qt-6-9-gstreamer-how-do-i-build-enable-qml6glsink-needs-a-windowing-backend-on-android/4965/2 "2025-08-16T08:11:36Z")

</div>

The Qt6 plugin does not currently have support for Android. That is still TODO as you can see from the meson build files: [subprojects/gst-plugins-good/ext/qt6/meson.build · main · GStreamer / gstreamer · GitLab](https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/main/subprojects/gst-plugins-good/ext/qt6/meson.build?ref_type=heads#L154) .

---

<div class="post-metadata">

### Author: ![raphaelscholle](https://discourse.gstreamer.org/user_avatar/discourse.gstreamer.org/raphaelscholle/32/1455_2.png) [@raphaelscholle](https://discourse.gstreamer.org/u/raphaelscholle)
#### Post date: [August 16, 2025, 11:23pm UTC](https://discourse.gstreamer.org/t/android-qt-6-9-gstreamer-how-do-i-build-enable-qml6glsink-needs-a-windowing-backend-on-android/4965/3 "2025-08-16T23:23:48Z")

</div>

Can we disable the windowing or is it needed for qml6glsink

---

<div class="post-metadata">

### Author: ![ystreet00](https://discourse.gstreamer.org/letter_avatar_proxy/v4/letter/y/3d9bf3/32.png) [@ystreet00](https://discourse.gstreamer.org/u/ystreet00)
#### Post date: [August 17, 2025, 6:45am UTC](https://discourse.gstreamer.org/t/android-qt-6-9-gstreamer-how-do-i-build-enable-qml6glsink-needs-a-windowing-backend-on-android/4965/4 "2025-08-17T06:45:35Z")

</div>

Some kind of windowing is always required for doing anything with GL. It’s how OpenGL interfaces with how to display pixels on the screen.
