コマンドラインから Qt for Android プロジェクトをビルドする
CMake によるビルド
インストールされた Qt を使って CMake プロジェクトをビルドするには、例えば Linux ではqt-cmakewrapper を使って次のようにします:
~/Qt/<qt_version>/android_<abi>/bin/qt-cmake \ -DANDROID_SDK_ROOT=~/Android/Sdk \ -DANDROID_NDK_ROOT=~/Android/Sdk/ndk/26.1.10909125 \ -S <source_dir> -B <build_dir> \ -GNinja
このページでは、わかりやすいようにLinuxのAndroid SDKのパスを使用していますが、これらのコマンドを実行する際は、お使いのシステムの関連パスを使用してください。
Android SDKは、一般的にQt Creator 、またはAndroid Studioによって以下の場所にインストールされます:
- Linux: ~/Android/Sdk/
- macOS: ~/Library/Android/sdk/
- WindowsWindows: C:¥Users<USER>¥AppData¥Local¥Android¥Sdk
注意: セルフビルドのQtを使用している場合、SDKとNDKの引数を指定する必要はありません。
CMakeを使ったマルチABIパッケージのビルド
Qt 6.8では、マルチABIパッケージをビルドする方法がいくつか存在します。デフォルトでは、qt-cmakeスクリプトに属する単一のABIのみが選択されます。QT_ANDROID_BUILD_ALL_ABIS変数をTRUE
に設定すると、利用可能な Qt for Android SDK の自動検出が可能になります。この検出メカニズムは、Qt Online Installer によって提供されるデフォルトのディレクトリ構造を使用することを前提としています:
~/Qt/<qt_version>: android_arm64_v8a android_armv7 android_x86 android_x86_64
以下のコマンドは、Qt Online Installer が提供する Qt for Android SDK を使用して Android マルチ ABI パッケージをビルドする最も簡単な方法を示しています:
~/Qt/<qt_version>/android_<abi>/bin/qt-cmake \ -DQT_ANDROID_BUILD_ALL_ABIS=TRUE \ -DANDROID_SDK_ROOT=~/Android/Sdk \ -DANDROID_NDK_ROOT=~/Android/Sdk/ndk/26.1.10909125 \ -S <source_directory> -B <build_directory> -GNinja
QT_ANDROID_ABIS変数を使用すると、プロジェクトがビルドされる ABI のリストをカスタマイズできます。対応する Qt for Android 開発キットは、前述のディレクトリ構造に従う必要があります。以下のコマンドラインは、arm64-v8a
とx86
ABIs のためだけにプロジェクトを設定します:
~/Qt/<qt_version>/android_<abi>/bin/qt-cmake \ -DQT_ANDROID_ABIS="arm64-v8a;x86" \ -DANDROID_SDK_ROOT=~/Android/Sdk \ -DANDROID_NDK_ROOT=~/Android/Sdk/ndk/26.1.10909125 \ -S <source_directory> -B <build_directory> -GNinja
注意: qt-cmakeスクリプトが属するプライマリ SDK の ABI は、無条件で使用する ABI のリストに追加されます。ビルドから除外することはできません。
注意: QT_ANDROID_BUILD_ALL_ABIS の方がQT_ANDROID_ABIS よりも優先度が高いです。
デフォルトのディレクトリ構造と一致しない Qt for Android SDK へのパスは、対応するQT_PATH_ANDROID_ABI_<ABI>変数を使用して変更できます。
以下の例では、利用可能な Qt for Android SDK の自動検出を有効にし、armeabi-v7a
およびarm64-v8a
SDK へのカスタムパスを指定しています:
<qt_for_android_install_path>/bin/qt-cmake \ -DQT_ANDROID_BUILD_ALL_ABIS=TRUE -DQT_PATH_ANDROID_ABI_armeabi-v7a="<Qt/for/armeabi-v7a>" \ -DQT_PATH_ANDROID_ABI_arm64-v8a="<Qt/for/arm64-v8a>" \ -DANDROID_SDK_ROOT=~/Android/Sdk \ -DANDROID_NDK_ROOT=~/Android/Sdk/ndk/26.1.10909125 \ -S <source_directory> -B <build_directory> -GNinja
また、QT_ANDROID_ABIStargetプロパティを設定し、単一の実行可能ターゲットがビルドされるABIのリストを指定することも可能です。例えば
qt_add_executable(MyApp main.cpp) set_target_properties(MyApp PROPERTIES QT_ANDROID_ABIS "arm64-v8a;x86")
例えば、MyApp
ターゲットは、QT_ANDROID_BUILD_ALL_ABIS
またはQT_ANDROID_ABIS
変数が設定されていても、armeabi-v7a
とarm64-v8a
に対してのみビルドされます。
Androidバンドルの作成
プロジェクトが設定されたら、以下のCMakeターゲットを使用してアプリケーション・バンドルを作成できます:
cmake --build . --target apk
または、AABを生成します:
cmake --build . --target aab
Qtコードがビルドされ、android-build
ディレクトリにコピーされた後、GradleがJavaコードのビルドとアプリケーションのパッケージに使用されます。
Androidパッケージへの署名
リリース用の APK がビルドされたら、署名する必要があります。Qt Creator を使ったパッケージの署名の詳細については、Androidパッケージの署名を参照してください。そうでない場合は、CMake変数QT_ANDROID_SIGN_APKと QT_ANDROID_SIGN_AABをチェックしてください。
AAR(Androidアーカイブ)ファイルのビルド
cmake --build . --target aar
qmakeでビルドする
Qt 5 と同様に、qmake
を使用してユーザープロジェクトをビルドすることができます。
注意: Qt 6 では、qmake
を使ったマルチ ABI パッケージのビルドはサポートされていません。
QT_ANDROID_ABIS,QT_ANDROID_BUILD_ALL_ABIS,QT_PATH_ANDROID_ABI_<ABI>, QT_ANDROID_ABISも参照してください 。
© 2025 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.