Configuración del archivo de manifiesto de Qt para Android
El Manifiesto de Android es un archivo XML necesario para cualquier aplicación Android. Contiene la configuración de la aplicación para diferentes ajustes y características que la aplicación utiliza, así como detalles sobre la propia aplicación, tales como, nombre del paquete, nombre de la aplicación, versión, etc. Los permisos y las características de hardware también se pueden configurar desde el manifiesto.
Qt para Android mantiene una versión de AndroidManifest.xml con la configuración por defecto que incluye características, permisos y otras configuraciones utilizadas por el sistema de construcción que son necesarias para construir y ejecutar aplicaciones Qt en Android.
Configuración del proyecto Qt en el manifiesto
Qt define algunos metadatos que se pasan de los sistemas de construcción y a androiddeployqt que rellena el manifiesto con los valores correctos sin establecer explícitamente estos en el archivo de manifiesto. Tales meta-datos se les asigna un valor en la forma "-- %%INSERT_VALUE%% --", por ejemplo:
<manifest ...
android:versionCode="-- %%INSERT_VERSION_CODE%% --"
...
</manifest>Esto se rellenaría con el código de versión que se establece en, por ejemplo, CMake.
Configuración por defecto de Qt
Qt establece la siguiente configuración del manifiesto por defecto:
| Sección | Opción | Descripción |
|---|---|---|
| <manifiesto> | paquete | Establece el nombre del paquete. El valor por defecto es org.qtproject.example.app_name.Advertencia: Este campo está obsoleto y se ha movido a |
| android:ubicacióndeinstalación | Establece la ubicación de instalación de la aplicación, ya sea almacenamiento interno o externo. El valor por defecto es auto. | |
| android:versionCode | Establece el código de la versión interna. Se rellena a partir de ANDROID_VERSION_CODE (qmake) y QT_ANDROID_VERSION_CODE (CMake). El valor por defecto es 1. | |
| android:versionNombre | Establece el nombre público de la versión. Obtenido de ANDROID_VERSION_NAME (qmake) y QT_ANDROID_VERSION_NAME (CMake). El valor por defecto es 1.0. | |
| <supports-pantallas> | Establece los tamaños de pantalla que soporta la aplicación, los valores por defecto son anyDensity, largeScreens, normalScreens, y smallScreens. | |
| <aplicación> | android:name | El nombre de clase de la aplicación. El valor por defecto es org.qtproject.qt.android.bindings.QtApplication. |
| android:label | La etiqueta del nombre de la aplicación. El valor por defecto es el nombre de destino del proyecto Qt. Se puede configurar usando QT_ANDROID_APP_NAME. | |
| android:icon | El icono de la aplicación como referencia a un recurso drawable o mipmap. Esta etiqueta no se utiliza a menos que se establezca usando QT_ANDROID_APP_ICON o manualmente en AndroidManifest.xml. | |
| android:hardwareAccelerated | Establece la preferencia de aceleración por hardware. El valor por defecto es true. | |
| android:requestLegacyAlmacenamientoExterno | Establece si se debe utilizar el almacenamiento externo de Android. El valor por defecto es true. | |
| android:allowBackup | Si se permite que la aplicación participe en la infraestructura de copia de seguridad y restauración. Si se establece en false, no se realizará ninguna copia de seguridad ni restauración de la aplicación. El valor por defecto es true. | |
| android:fullBackupOnly | Utilizar o no la copia de seguridad automática en los dispositivos en los que esté disponible. El valor por defecto es false. | |
| <actividad> | android:name | El nombre de la clase de actividad. El valor por defecto es org.qtproject.qt.android.bindings.QtActivity. |
| android:configCambios | Lista los cambios de configuración que maneja la actividad. El valor por defecto es orientation, uiMode, screenLayout, screenSize, smallestScreenSize, layoutDirection, locale, fontScale, keyboard, keyboardHidden, navigation, mcc, mnc, density. | |
| android:launchMode | El método utilizado para lanzar la actividad. El valor por defecto es singleTop. | |
| android:screenOrientation | La orientación de la pantalla de la actividad en el dispositivo. El valor por defecto es unspecified. | |
| <filtro de intents> | Especifica los tipos de intents a los que puede responder la actividad. El valor por defecto es<action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> | |
| android:exportado | Establece si la actividad puede ser lanzada por componentes de otras aplicaciones. El valor por defecto es true. |
Meta-datos específicos de Qt
Además de la configuración del manifiesto por defecto que Qt establece, Qt define algunos metadatos que son válidos sólo para aplicaciones Qt. Dichos metadatos se encuentran normalmente en la sección <activity> de la forma:
<meta-data
android:name="meta-data-name"
android:value="meta-data-value" />La siguiente es una lista de los metadatos definidos por Qt:
| Meta-datos Nombre | Descripción |
|---|---|
| android.app.lib_name | El nombre de archivo de la librería nativa C++ que es usada por la actividad. Nota: Este atributo es obligatorio y no debe ser eliminado. El valor por defecto es el nombre de destino del proyecto Qt. |
| android.app.extract_android_style | El método utilizado para extraer la información nativa de Android Style. Para obtener más información, consulte Extracción de estilos. El valor por defecto es minimal. |
| android.app.background_running | Establece si la aplicación sigue ejecutando tareas en segundo plano. Establecer esto a true es el equivalente de establecer la variable de entorno QT_BLOCK_EVENT_LOOPS_WHEN_SUSPENDED a 0. El valor por defecto es false.Advertencia: Establecerlo a |
| android.app.arguments | Establece una lista de argumentos para pasar a la aplicación "arg1 arg2". Se rellena a partir de ANDROID_APPLICATION_ARGUMENTS (qmake) y QT_ANDROID_APPLICATION_ARGUMENTS (CMake). El valor por defecto no se establece. |
| android.app.splash_screen_drawable_portrait | Establece un dibujable para una pantalla de bienvenida específica para el modo vertical. Por ejemplo: android:resource="@drawable/splash_portrait". El valor por defecto no está definido. |
| android.app.splash_screen_drawable_landscape | Establece un dibujable para una pantalla de inicio específica para el modo horizontal. Por ejemplo: android:resource="@drawable/splash_landscape". El valor por defecto no está establecido. |
| android.app.splash_screen_drawable | Establece un dibujable para una pantalla de bienvenida al inicio de la aplicación. Nota: Las pantallas de bienvenida específicas de la orientación se comprueban en primer lugar, si no se establecen, esto se utiliza en su lugar. Por ejemplo: |
| android.app.splash_screen_sticky | Establece si la pantalla de inicio permanece visible hasta que la aplicación la oculta explícitamente. Para más información, consulta QAndroidApplication::hideSplashScreen(). |
| android.app.trace_location | Especifica una ubicación en el dispositivo donde la aplicación puede guardar los archivos de seguimiento. Por ejemplo /storage/emulated/0/Android/data/<app_package_name>/files/. Esto es necesario cuando se utiliza el backend de rastreo Common Trace Format (CTF). Nota: la aplicación necesita permiso de almacenamiento para la ubicación. Por defecto: no establecido. |
Metadatos específicos de la aplicación
Algunos atributos de metadatos son específicos de la aplicación y deben colocarse en la sección <application>:
| Nombre de los metadatos | Descripción |
|---|---|
| android.app.system_libs_prefix | Especifica una ruta de biblioteca de sistema personalizada que se utilizará para la búsqueda de carga de bibliotecas. Esto es necesario cuando se utilizan bibliotecas Qt instaladas fuera del directorio de bibliotecas nativas (JNI) predeterminado de una aplicación. El valor predeterminado es /system/lib/. |
Metadatos en los servicios
Algunos atributos de meta-datos también pueden ser usados en Servicios. Los principales son:
Permisos y funciones de Qt
Diferentes módulos Qt pueden requerir algunos permisos o características de Android para funcionar correctamente, por ejemplo, el permiso de cámara en QtMultimedia. La herramienta androiddeployqt se encarga de incluir estos requisitos en el manifiesto de Android durante la compilación. Qt define las siguientes líneas en el manifiesto, que son reemplazadas por los valores reales:
<manifest ...
<!-- %%INSERT_PERMISSIONS -->
<!-- %%INSERT_FEATURES -->
...
</manifest>Nota: Si estas líneas se eliminan del manifiesto del proyecto, Qt no podrá incluir los permisos correctos. Por lo que algunas funcionalidades podrían no funcionar correctamente.
Personalizando los permisos
Desde Qt 6.8.1, es posible anular los permisos por defecto establecidos por los módulos Qt. Esto es útil si necesita definir los mismos permisos que utiliza un módulo Qt, pero con atributos adicionales o diferentes.
Hay dos formas de conseguirlo. La primera es usar la función qt_add_android_permission de CMake en la aplicación CMakeLists.txt. Los permisos definidos de esta manera tienen prioridad sobre los mismos permisos definidos por los módulos Qt, evitando la duplicación.
La segunda forma es definir manualmente estos permisos en el archivo de manifiesto de Android. Los permisos definidos de esta manera tienen prioridad sobre los permisos establecidos por los módulos Qt, o establecidos con qt_add_android_permission.
Extracción de estilos
Qt utiliza diferentes métodos para determinar cómo Qt Widgets y Qt Quick Controls deben tener estilo:
full: cuando se utiliza Qt Widgets o Qt Quick Controls 1.Nota: Este método está obsoleto ya que utiliza algunas interfaces de Android no SDK, que fueron restringidas por Google a partir de Android 9.0 (API 28). Debería utilizar uno de los otros métodos.
defaultominimal: cuando se utiliza Qt Quick Controls 2 y no Qt Widgets o Qt Quick Controls 1. Esto es más rápido que usar las opciones por defecto o completa.none: sin extracción de estilos.
Manifiesto Qt antes de la versión 6.2
Las versiones de Qt anteriores a la 6.2 solían tener un conjunto adicional de meta-datos definidos por Qt. Estos atributos servían para gestionar dependencias y algunos eran utilizados por el descatalogado servicio Ministro. Con Qt 6.2, deberían ser eliminados. Aquí hay una lista de estos atributos:
- android.app.qt_sources_resource_id
- android.app.repository
- android.app.bundled_libs_resource_id
- android.app.bundle_local_qt_libs
- android.app.use_local_qt_libs
- android.app.libs_prefix
- android.app.load_local_libs_resource_id
- android.app.load_local_jars
- android.app.static_init_classes
- android.app.qt_libs_resource_id
- android.app.ministro_not_found_msg
- android.app.ministro_needed_msg
- android.app.fatal_error_msg
Para obtener más información sobre el Android Manifest, consulte Android App Manifest.
© 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.