Creación de proyectos Qt para Android desde la línea de comandos
Construir con CMake
Para construir proyectos CMake con Qt instalado, por ejemplo, para Linux utilice lo siguiente con qt-cmake wrapper:
~/Qt/<qt_version>/android_<abi>/bin/qt-cmake \
-DANDROID_SDK_ROOT=~/Android/Sdk \
-DANDROID_NDK_ROOT=~/Android/Sdk/ndk/27.2.12479018 \
-S <source_dir> -B <build_dir> \
-GNinjaA lo largo de esta página, utilizamos la ruta del SDK de Android para Linux por simplicidad, sin embargo, al ejecutar estos comandos, asegúrese de utilizar la ruta correspondiente de su sistema.
El SDK de Android se instala comúnmente por Qt Creator o Android Studio en las siguientes ubicaciones:
- Linux: ~/Android/Sdk/
- macOS: ~/Library/Android/sdk/
- Windows: C:\Users\<USER>\AppData\Local \Android \Sdk \
Nota: Si estás utilizando un Qt autocompilado, no necesitas proporcionar los argumentos SDK y NDK, ya que los mismos valores utilizados para compilar Qt se utilizan con qt-cmake.
Construyendo paquetes multi-ABI usando CMake
En Qt 6.11, existen varias formas de construir un paquete multi-ABI. Por defecto, sólo se selecciona la ABI que pertenece al script qt-cmake. Establecer la variable QT_ANDROID_BUILD_ALL_ABIS a TRUE permite la detección automática de los SDKs disponibles de Qt para Android. El mecanismo de detección asume el uso de la estructura de directorios por defecto suministrada por Qt Online Installer:
~/Qt/<qt_version>:
android_arm64_v8a
android_armv7
android_x86
android_x86_64El siguiente comando muestra la forma más sencilla de construir un paquete multi-ABI para Android utilizando los SDKs de Qt para Android suministrados por Qt Online Installer:
~/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/27.2.12479018 \
-S <source_directory> -B <build_directory>
-GNinjaUsando la variable QT_ANDROID_ABIS, es posible personalizar la lista de ABIs para las que se construye el proyecto. Los correspondientes kits de desarrollo Qt para Android deben seguir la estructura de directorios descrita anteriormente. La siguiente línea de comandos configura un proyecto sólo para las ABIs arm64-v8a y x86:
~/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/27.2.12479018 \
-S <source_directory> -B <build_directory>
-GNinjaNota: La ABI del SDK primario al que pertenece el script qt-cmake se añade a la lista de ABIs usadas incondicionalmente. No es posible excluirlo de la compilación.
Nota: QT_ANDROID_BUILD_ALL_ABIS tiene mayor prioridad que QT_ANDROID_ABIS.
Las rutas a los SDKs de Qt para Android que no coincidan con la estructura de directorios por defecto pueden cambiarse usando las variables QT_PATH_ANDROID_ABI_<ABI> correspondientes.
El siguiente ejemplo permite la detección automática de los SDKs disponibles de Qt para Android y especifica rutas personalizadas a los SDKs armeabi-v7a y arm64-v8a:
<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/27.2.12479018 \
-S <source_directory> -B <build_directory>
-GNinjaTambién es posible establecer la propiedad QT_ANDROID_ABIS target que especifica una lista de ABIs para las que se construye el único objetivo ejecutable. Por ejemplo:
qt_add_executable(MyApp main.cpp) set_target_properties(MyApp PROPERTIES QT_ANDROID_ABIS "arm64-v8a;x86")
El objetivo MyApp se construirá sólo para armeabi-v7a y arm64-v8a, incluso si se establece la variable QT_ANDROID_BUILD_ALL_ABIS o QT_ANDROID_ABIS.
Creación del paquete Android
Una vez configurado el proyecto, puede utilizar los siguientes objetivos CMake para crear el paquete de la aplicación:
cmake --build . --target apk
O para generar el AAB:
cmake --build . --target aab
Bajo el capó, su código Qt se construye y se copia en el directorio android-build, a continuación, Gradle se utiliza para construir el código Java y empaquetar la aplicación.
Firma del paquete Android
Si un APK destinado a la liberación se construye, entonces debe ser firmado. Para obtener más información sobre la firma del paquete con Qt Creator, consulte Firma de paquetes Android. Si no, comprueba las variables de CMake QT_ANDROID_SIGN_APK y QT_ANDROID_SIGN_AAB.
Construir un archivo AAR (Android Archive)
Nota: El soporte para construir AAR fue introducido en Qt 6.8.
Un Archivo Android (AAR) es un formato de librería Android. A diferencia de un APK o AAB, no se puede ejecutar de forma independiente, sino que está destinado a ser incrustado como una dependencia en una aplicación nativa de Android. Esta es la configuración típica cuando se aloja contenido Qt/QML dentro de una actividad nativa de Android.
Para producir un AAR, defina su aplicación Qt con qt_add_executable como de costumbre. Los objetivos de compilación AAR se crean automáticamente junto con los objetivos APK y AAB. Construir todos los paquetes AAR en un proyecto con:
cmake --build . --target aar
Para construir sólo el AAR para un objetivo específico llamado myapp:
cmake --build . --target myapp_make_aar
Construir con qmake
Puedes continuar usando qmake para construir proyectos de usuario como en Qt 5.
Nota: La construcción de paquetes multi-ABI con qmake no es compatible con Qt 6.
Ver también QT_ANDROID_ABIS, QT_ANDROID_BUILD_ALL_ABIS, QT_PATH_ANDROID_ABI_<ABI>, y QT_ANDROID_ABIS.
© 2026 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.