Qt is now staying up-to-date with new Android NDK versions

This post talks about how we keep up to date with new Android NDK versions and talks a bit about our LLDB support in Qt Creator. For a while now, we have been improving our support for new Android NDK versions, and have also made sure our debugger support in Qt Creator works with recent NDK versions.

Staying up to date with NDK versions for Qt (6) builds

We have vastly improved our turn-around time for ensuring that recent NDK versions work fine for Qt builds and for builds of Qt applications. This consists of a couple of parts that are nowadays included in our process:

  1. We plan ahead for forthcoming NDK versions and their releases, keeping track of Google's NDK release schedules.
  2. We build-test the beta versions of Android NDKs, and fix compilation bugs early.
  3. Once the build fixes have been done, we roll out new NDK versions into our Continuous Integration system, in order to keep the builds working with the new NDK versions.

We have been doing this for a while now, and while the process was put in place to be able to track multiple NDK versions per year, Google has now slowed down the NDK release cycle, so that they seem to come out with a new one just once per year. Nevertheless, we execute the tracking process the same way.

If Qt 6 or applications for it don't build with a shiny and new NDK, it's a bug, please report it.

We haven't forgotten Qt 5, either

Since QTBUG-108662 was fixed, we now support building Qt 5 and applications for it with LLVM-based toolchains in newer NDKs. The bug was about a remaining dependency on ranlib, with the fix the qmake build correctly uses llvm-ar on LLVM toolchains.

Similarly to Qt 6, if Qt 5 or applications for it don't build with a shiny and new NDK, it's a bug, please report it.

Debugging with LLDB

The recent Qt Creator versions will autodetect LLDB if you select an NDK version that is new enough to no longer ship GDB, and debugging on a device with it will Just Work out of the box.

Android 12 testing

Finally, we're doing the finishing touches to add Android 12 into our CI among all the other configurations that we check builds and test results for on every commit. There's been some test case tuning necessary for that, but it's now in its final steps, soon ready to be merged.

Blog Topics: