QGroundControl 5.0.7 + Qt 6.8.3 crashes on Skydroid H12 Pro (Android 8.1) – getentropy symbol missing

Hi,
I am trying to build and run QGroundControl v5.0.7 on a Skydroid H12 Pro controller which is running Android 8.1 (API 27).

My build setup is:

  • Qt: 6.8.3 (Android ARM64)

  • NDK: 26.1.10909125

  • SDK: Android 26 / 27 installed

  • QGC branch: v5.0.7

  • Build tool: qt-cmake + Ninja

The project configures and builds successfully, and the APK installs on the device.
However, when I launch the app, it crashes immediately.

Here is the crash log from logcat:

929 E AndroidRuntime: FATAL EXCEPTION: qtMainLoopThread
12-07 23:38:57.164 12873 12929 E AndroidRuntime: Process: org.mavlink.qgroundcontrol, PID: 12873
12-07 23:38:57.164 12873 12929 E AndroidRuntime: java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "getentropy" referenced by "/data/app/org.mavlink.qgroundcontrol-GavBdpQ_Gd8y-9r3Ict44w==/lib/arm64/libQt6Core_arm64-v8a.so"...
12-07 23:38:57.164 12873 12929 E AndroidRuntime: 	at java.lang.Runtime.load0(Runtime.java:928)
12-07 23:38:57.164 12873 12929 E AndroidRuntime: 	at java.lang.System.load(System.java:1621)
12-07 23:38:57.164 12873 12929 E AndroidRuntime: 	at org.qtproject.qt.android.QtLoader.loadLibraryHelper(QtLoader.java:497)
12-07 23:38:57.164 12873 12929 E AndroidRuntime: 	at org.qtproject.qt.android.QtLoader.lambda$loadLibraries$1$org-qtproject-qt-android-QtLoader(QtLoader.java:570)
12-07 23:38:57.164 12873 12929 E AndroidRuntime: 	at org.qtproject.qt.android.QtLoader$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
12-07 23:38:57.164 12873 12929 E AndroidRuntime: 	at org.qtproject.qt.android.QtThread.lambda$run$0(QtThread.java:57)
12-07 23:38:57.164 12873 12929 E AndroidRuntime: 	at org.qtproject.qt.android.QtThread$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
12-07 23:38:57.164 12873 12929 E AndroidRuntime: 	at org.qtproject.qt.android.QtThread$1.run(QtThread.java:25)
12-07 23:38:57.164 12873 12929 E AndroidRuntime: 	at java.lang.Thread.run(Thread.java:764)
12-07 23:38:57.171  1344  2590 W ActivityManager:   Force finishing activity org.mavlink.qgroundcontrol/.QGCActivity

It seems Qt6Core is calling getentropy(), which only exists on Android API 28+, but my device is API 27 (Android 8.1). Because of this, the app fails during QtCore initialization before any QGC code runs.

My questions:

  1. Does QGroundControl 5.x officially support Android 8.1?

  2. Since v5.0 requires Qt 6.8+, and Qt 6.8+ seems to require Android 9+ due to getentropy(), is QGC 5.x incompatible with the Skydroid H12 Pro?

  3. Is there any workaround to build QGC 5.0.x for Android 8.1?

  4. Or should I use QGroundControl 4.4.x with Qt 6.5.3 instead (which runs on API 27)?

Any guidance from the maintainers would be appreciated.
Thanks!

QGC v5.0.x should still be compatible with older Android versions (I have it running on Herelink which has Android 7.1.2). However, you have to build with Qt 6.6.3 (see qgroundcontrol-herelink/.github/workflows/android-linux-qt6.6.3.yml at 1e811d5a9b0ef032565bb07895dd673c9f8c5e3e · CubePilot/qgroundcontrol-herelink · GitHub).

@JulianOes,Thank you for the clarification! This helps a lot. I will switch to Qt 6.6.3 and rebuild QGC 5.0.7 for my Android 8.1 device. Really appreciate the guidance.

Hi, Requesting update, we are too trying to build but at qt 6.10.0 , same error and th eapp chrashes in skydroid h12 pro, kindly share ur results