Getting Started with Qt for Android

The video below is a beginner's guide to using the Qt for Android toolchain, including the Qt Creator IDE, to get you started developing Qt for Android apps.

To learn the basics of getting started with Qt for Android, take the Getting Started with Qt for Android course in Qt Academy.

The rest of this page has more detailed getting started information.

To download and install Qt for Android, follow the instructions on the Getting Started with Qt page.

Android Development Prerequisites

In order to develop with Qt for Android, you will need the following prerequisites:

The easiest way to manage the dependencies is by using Qt Creator's built-in Android development setup. When you first open Qt Creator after installing Qt for Android, you are asked if you want to run the Android setup wizard. This also sets up OpenSSL for Android.

Using an existing SDK location

If you already have an Android SDK setup, you don't need to run this wizard. Instead, in Qt Creator go to Preferences > Devices > Android and browse to your existing JDK and SDK paths. See common Android SDK paths. For more information, see Qt Creator: Set up Android development environment.

Manually Installing the Prerequisites

If you prefer to manually install the prerequisites please follow these next steps.

Java Development Kit (JDK)

Qt for Android development requires JDK 17 or above, provided by any of the following supported distributions:

Install your preferred JDK. If your installer doesn't set the JAVA_HOME environment variable that points to the location of the installed JDK, you can set it manually. For example on Linux:

sudo apt-get install openjdk-17-jdk
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64

Or on macOS:

brew install openjdk@17
sudo ln -sfn "$(brew --prefix openjdk@17)/libexec/openjdk.jdk" \
    "/Library/Java/JavaVirtualMachines/openjdk-17.jdk"
export JAVA_HOME="$(/usr/libexec/java_home -v 17)"

Android SDK Command Line Tools

Download the latest version of the Android SDK Command Line Tools for your operating system and extract it to the appropriate path as stated below.

Android SDK paths

The Android SDK is commonly installed by Qt Creator or Android Studio in the following locations:

  • Linux: ~/Android/Sdk/
  • macOS: ~/Library/Android/sdk/
  • Windows: C:\Users\<USER>\AppData\Local\Android\Sdk\

Or use your OS's package manager, for example for macOS:

brew install android-commandlinetool

Android SDK Mandatory Packages

Make sure to install the SDK Platform, Platform Tools, and Build Tools. For Qt 6.9, use:

sdkmanager "platform-tools" "platforms;android-34" "build-tools;34.0.0"

Android NDK

Qt 6.9 uses NDK 26.1.10909125, you can install it by running:

sdkmanager "ndk;26.1.10909125"

For example for macOS:

Emulator

If you wish to use the Android Emulator, you can install it by running:

sdkmanager "emulator" "patcher;v4"

Platform Specific Configurations

Windows

The default USB driver on Windows does not allow debugging using Android Debug Bridge (ADB) tool. You must install the additional USB driver provided by the extras Android SDK package. Install it by running the following:

sdkmanager.bat "extras;google;usb_driver"
Linux

The following dependencies are needed for using tools such as adb or gdb which can be used by Qt Creator:

sudo apt-get install libstdc++6 libncurses5

To run the Android emulator, the following dependencies are also necessary:

Testing the Setup

Now you can test your development setup by running the examples shipped with the Qt installation. For more information, see Mobile Examples.

To develop a simple application from scratch, see Qt Creator: Tutorial: Mobile application.

© 2024 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.