En esta página

La herramienta androiddeployqt

La construcción de un paquete Android implica muchos pasos, por lo que Qt viene con una herramienta que se encarga del trabajo por usted. Los pasos manejados por la herramienta androiddeployqt se describen en Implementación de una aplicación en Android.

Requisitos previos antes de ejecutar androiddeployqt

Antes de ejecutar la herramienta manualmente, necesitas configurar tu proyecto con CMake o qmake para generar Makefiles y un archivo JSON (i.e. android-<target_name>-deployment-settings.json) que contiene ajustes importantes utilizados por androiddeployqt.

Nota: No se recomienda modificar el archivo JSON de androiddeployqt.

Para preparar el entorno para androiddeployqt, configure su proyecto en un directorio distinto a su directorio fuente. Para obtener más información sobre la configuración de su proyecto, consulte Creación de proyectos Qt para Android desde la línea de comandos.

Argumentos de la línea de comandos

Los únicos argumentos de línea de comandos necesarios para ejecutar la herramienta son --input y --output. Otros argumentos de la línea de comandos son opcionales pero útiles. La siguiente lista está disponible pasando el argumento --help a androiddeployqt.

Syntax: androiddeployqt --output <destination> [options]

Creates an Android package in the build directory <destination> and
builds it into an .apk file.

Optional arguments:
    --input <inputfile>: Reads <inputfile> for options generated by
       qmake. A default file name based on the current working
       directory will be used if nothing else is specified.

    --deployment <mechanism>: Supported deployment mechanisms:
       bundled (default): Includes Qt files in stand-alone package.
       unbundled: Assumes native libraries are present on the device
       and does not include them in the APK.

    --aab: Build an Android App Bundle.

    --no-build: Do not build the package, it is useful to just install
       a package previously built.

    --install: Installs apk to device/emulator. By default this step is
       not taken. If the application has previously been installed on
       the device, it will be uninstalled first.

    --reinstall: Installs apk to device/emulator. By default this step
       is not taken. If the application has previously been installed on
       the device, it will be overwritten, but its data will be left
       intact.

    --device [device ID]: Use specified device for deployment. Default
       is the device selected by default by adb.

    --android-platform <platform>: Builds against the given android
       platform. By default, the highest available version will be
       used.

    --release: Builds a package ready for release. By default, the
       package will be signed with a debug key.

    --sign <url/to/keystore> <alias>: Signs the package with the
       specified keystore, alias and store password.
       Optional arguments for use with signing:
         --storepass <password>: Keystore password.
         --storetype <type>: Keystore type.
         --keypass <password>: Password for private key (if different
           from keystore password.)
         --sigfile <file>: Name of .SF/.DSA file.
         --digestalg <name>: Name of digest algorithm. Default is
           "SHA-256".
         --sigalg <name>: Name of signature algorithm. Default is
           "SHA256withRSA".
         --tsa <url>: Location of the Time Stamping Authority.
         --tsacert <alias>: Public key certificate for TSA.
         --internalsf: Include the .SF file inside the signature block.
         --sectionsonly: Do not compute hash of entire manifest.
         --protected: Keystore has protected authentication path.
         --jarsigner: Deprecated, ignored.

       NOTE: To conceal the keystore information, the environment variables
         QT_ANDROID_KEYSTORE_PATH, and QT_ANDROID_KEYSTORE_ALIAS are used to
         set the values keysotore and alias respectively.
         Also the environment variables QT_ANDROID_KEYSTORE_STORE_PASS,
         and QT_ANDROID_KEYSTORE_KEY_PASS are used to set the store and key
         passwords respectively. This option needs only the --sign parameter.

    --jdk <path/to/jdk>: Used to find the jarsigner tool when used
       in combination with the --release argument. By default,
       an attempt is made to detect the tool using the JAVA_HOME and
       PATH environment variables, in that order.

    --qml-import-paths: Specify additional search paths for QML
       imports.

    --verbose: Prints out information during processing.

    --no-generated-assets-cache: Do not pregenerate the entry list for
       the assets file engine.

    --aux-mode: Operate in auxiliary mode. This will only copy the
       dependencies into the build directory and update the XML templates.
       The project will not be built or installed.

    --apk <path/where/to/copy/the/apk>: Path where to copy the built apk.

    --build-aar: Build an AAR package. This option skips --aab, --install,
       --reinstall, and --sign options if they are provided.

    --qml-importscanner-binary <path/to/qmlimportscanner>: Override the
       default qmlimportscanner binary path. By default the
       qmlimportscanner binary is located using the Qt directory
       specified in the input file.

    --depfile <path/to/depfile>: Output a dependency file.

    --builddir <path/to/build/directory>: build directory. Necessary when
       generating a depfile because ninja requires relative paths.

    --no-rcc-bundle-cleanup: skip cleaning rcc bundle directory after
       running androiddeployqt. This option simplifies debugging of
       the resource bundle content, but it should not be used when deploying
       a project, since it litters the "assets" directory.

    --copy-dependencies-only: resolve application dependencies and stop
       deploying process after all libraries and resources that the
       application depends on have been copied.

    --help: Displays this information.

Con un project_name, para construir el paquete de aplicación con androiddeployqt sin desplegarlo el dispositivo, ejecute lo siguiente:

androiddeployqt --input <build_dir>/android-project_name-deployment-settings.json \
                --output <build_dir>/android-build

Para construir y desplegar el paquete en el dispositivo:

androiddeployqt --input <build_dir>/android-project_name-deployment-settings.json \
                --output <build_dir>/android-build --install --device <device_serial_id>

Detección de dependencias

Qt viene con una serie de plugins que se cargan en tiempo de ejecución cuando son necesarios. Estos pueden manejar cualquier cosa, desde la conexión a bases de datos SQL a la carga de formatos de imagen específicos. Detectar las dependencias de los plugins es imposible ya que los plugins se cargan en tiempo de ejecución, pero androiddeployqt intenta adivinar tales dependencias basándose en las dependencias Qt de su aplicación. Si el plugin tiene dependencias Qt que no son también dependencias de su aplicación, no será incluido por defecto. Por ejemplo, para asegurarse de que el plugin de formato de imagen SVG está incluido, necesitará añadir el módulo Qt SVG a tu proyecto para que se convierta en una dependencia de tu aplicación:

find_package(Qt6 REQUIRED COMPONENTS Svg)
...
target_link_libraries(target_name PRIVATE Qt6::Svg)

Si te preguntas por qué un plugin en particular no se incluye automáticamente, puedes ejecutar androiddeployqt con la opción --verbose para obtener la lista de dependencias que faltan para cada plugin excluido. Usted puede lograr lo mismo en Qt Creator marcando la casilla Verbose output en el Projects > Build Steps > Build Android APK > Advanced Actions.

También es posible especificar manualmente las dependencias de tu aplicación. Para más información, consulta la variable CMake QT_ANDROID_DEPLOYMENT_DEPENDENCIES.

Nota: androiddeployqt escanea los archivos QML del proyecto para recoger las importaciones QML. Sin embargo, si está cargando código QML como un QString de C ++ en tiempo de ejecución, que podría no funcionar correctamente porque androiddeployqt no será consciente de ello en el momento de despliegue. Para remediarlo, puede añadir un archivo QML ficticio que importe dichos módulos QML a los que se hace referencia en tiempo de ejecución.

Despliegue en Qt Creator

Qt Creator utiliza androiddeployqt y ofrece interfaces de usuario sencillas e intuitivas para especificar diversas opciones. Para obtener más información, consulte Qt Creator: Android Deploy Configuration.

Para obtener más información sobre la personalización y el despliegue de una aplicación Qt para Android, consulte Despliegue de una aplicación en Android.

© 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.