Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

Cómo compilar y ejecutar una app

Android Studio configura proyectos nuevos para implementar en Android Emulator o en un dispositivo conectado con unos pocos clics. Una vez que se instala la app, puedes usar Apply Changes para implementar ciertos cambios de código y recursos sin compilar un APK nuevo.

Para compilar y ejecutar la app, sigue estos pasos:

  1. En la barra de herramientas, selecciona la app en el menú desplegable de configuraciones de ejecución.
  2. En el menú desplegable del dispositivo de destino, selecciona el dispositivo en el que deseas ejecutar la app.

    Menú desplegable del dispositivo de destino.

    Si no tienes ningún dispositivo configurado, debes conectar un dispositivo mediante USB o crear un AVD para usar Android Emulator.

  3. Haz clic en Run .

Cómo cambiar la configuración de ejecución y depuración

Cuando ejecutas la app por primera vez, Android Studio usa una configuración de ejecución predeterminada. La configuración de ejecución especifica si se debe implementar la app desde un APK o desde un Android App Bundle, y también especifica el módulo para ejecutar, el paquete para implementar, la actividad para iniciar, el dispositivo de destino, la configuración del emulador, las opciones de logcat y otros elementos.

La configuración de ejecución o depuración predeterminada compila un APK, lanza la actividad del proyecto predeterminado y usa el cuadro de diálogo Select Deployment Target para seleccionar dispositivos de destino. Si la configuración predeterminada no se adapta al proyecto o al módulo, puedes personalizar la configuración de ejecución o depuración, o bien crear una nueva, en los niveles del proyecto, de la configuración predeterminada y del módulo. Para editar una configuración de ejecución o depuración, selecciona Run > Edit configurations. Para obtener más información, consulta Cómo crear y editar configuraciones de ejecución y depuración.

Cómo cambiar la variante de compilación

De forma predeterminada, Android Studio compila la versión de depuración de la app, que está diseñada solo para uso durante el desarrollo, cuando haces clic en Run.

Para cambiar la variante de compilación que usa Android Studio, selecciona Build > Select Build Variant en la barra de menú.

Para los proyectos sin código nativo/C++, el panel Build Variants tiene dos columnas: Module y Active Build Variant. El valor de Active Build Variant del módulo determina la variante de compilación que el IDE implementa en el dispositivo y que se puede ver en el editor.

Figura 1: El panel Build Variants especifica dos columnas para los proyectos que no tienen código nativo/C++

Para alternar entre variantes, haz clic en la celda Active Build Variant de un módulo y elige la variante que desees en el campo de lista.

Para proyectos con código nativo/C++, el panel Build Variants tiene tres columnas: Module, Active Build Variant y Active ABI. El valor Active Build Variant del módulo determina la variante de compilación que el IDE implementa en el dispositivo y que se puede ver en el editor. En el caso de los módulos nativos, el valor Active ABI determina la ABI que usa el editor, pero no afecta lo que se implementa.

Figura 2: El panel Build Variants agrega la columna Active ABI para los proyectos con código nativo/C++

Para cambiar la variante de compilación o ABI, haz clic en la celda de la columna Active Build Variant o Active ABI, y elige la variante o la ABI que desees de la lista. Después de cambiar la selección, el IDE sincronizará el proyecto automáticamente. Si modificas cualquiera de las columnas de una app o un módulo de biblioteca, se aplicará el cambio a todas las filas dependientes.

De forma predeterminada, los proyectos nuevos se configuran con dos variantes de compilación: una de actualización y otra de depuración. Debes compilar la variante de actualización a fin de preparar la app para la versión pública.

Para compilar otras variaciones de la app, cada una con funciones o requisitos de dispositivo diferentes, puedes definir variantes de compilación adicionales.

Cómo compilar un proyecto

El botón Run  compila la app y la implementa en un dispositivo. Sin embargo, a fin de compilar la app para compartirla o subirla a Google Play, tendrás que usar una de las opciones del menú Build para compilar partes del proyecto o su totalidad. Antes de seleccionar cualquiera de las opciones de compilación que se muestran en la tabla 1, asegúrate de seleccionar la variante de compilación que quieras usar.

Tabla 1: Opciones de compilación en el menú Compilar

Elemento de menú Descripción
Make Module Compila todos los archivos fuente en el módulo seleccionado que se modificaron desde la última compilación, así como todos los módulos de los que depende el módulo seleccionado de forma recursiva. La compilación incluye archivos fuente dependientes y las tareas de compilación asociadas. A fin de elegir el módulo para compilar, selecciona el nombre del módulo o uno de sus archivos en la ventana Project. Este comando no genera un APK.
Make Project Crea todos los módulos.
Clean Project Borra todos los archivos de compilación intermedios o en caché.
Rebuild Project Ejecuta Clean Project para la variante de compilación seleccionada y genera un APK.
Build Bundle(s) / APK(s) > Build APK(s)

Crea un APK de todos los módulos del proyecto actual para la variante seleccionada. Cuando se completa la compilación, se muestra una notificación de confirmación y se proporciona un vínculo al archivo del APK y un vínculo para analizarlo en el Analizador de APK.

Si la variante de compilación seleccionada es un tipo de compilación de depuración, se firma el APK con una clave de depuración y está listo para instalarse. Si seleccionaste una variante de actualización, de forma predeterminada, no se firmará el APK y deberás hacerlo manualmente. De forma alternativa, puedes seleccionar Build > Generate Signed Bundle / APK en la barra de menú.

Android Studio guarda los APK que compilas en project-name/module-name/build/outputs/apk/.

Build Bundle(s) / APK(s) > Build Bundle(s)

Compila un Android App Bundle de todos los módulos en el proyecto actual de la variante seleccionada. Cuando se completa la compilación, se muestra una notificación de confirmación y se proporciona un vínculo al paquete de aplicación, así como un vínculo para analizarlo en el Analizador de APK.

Si la variante de compilación seleccionada es un tipo de compilación de depuración, se firma el paquete de aplicación con una clave de depuración, y puedes usar bundletool para implementar la app desde el paquete de aplicación en un dispositivo conectado. Si seleccionaste una variante de actualización, no se firmará el paquete de aplicación de forma predeterminada y deberás firmarlo manualmente mediante jarsigner. De forma alternativa, puedes seleccionar Build > Generate Signed Bundle / APK en la barra de menú.

Android Studio guarda los APK que compilas en project-name/module-name/build/outputs/bundle/.

Generate Signed Bundle / APK Se muestra un diálogo con un asistente para crear una nueva configuración de firma y compilar un paquete de aplicación o un APK firmado. Antes de subir la app a Play Console, tienes que firmarla con una clave de actualización. Para obtener más información sobre la firma de apps, consulta Cómo firmar una app.

Nota: El botón Run  compila un APK con testOnly="true". Esto significa que solo se puede instalar el APK mediante adb (que usa Android Studio). Si deseas obtener un APK con capacidad de depuración, que los usuarios puedan instalar sin adb, selecciona la variante de depuración y haz clic en Build Bundle(s) / APK(s) > Build APK(s).

Si necesitas obtener información sobre las tareas que ejecuta Gradle para cada comando, abre la ventana Build, como se describe en la siguiente sección. Para obtener más información sobre Gradle y el proceso de compilación, consulta Cómo configurar tu compilación.

Cómo supervisar el proceso de compilación

Para ver los detalles del proceso de compilación, haz clic en View > Tool Windows > Build (o en Build , en la barra de ventanas de herramientas). La ventana muestra las tareas que ejecuta Gradle para compilar la app, como se muestra en la figura 3.

Figura 3: La ventana Build Output de Android Studio

  1. Pestaña Build: Muestra las tareas que ejecuta Gradle en forma de árbol, donde cada nodo representa una fase de compilación o un grupo de dependencias de tareas. Si recibes errores de compilación o de tiempo de compilación, inspecciona el árbol y selecciona un elemento para leer el resultado del error, como se muestra en la figura 4.

    Figura 4: Inspecciona la ventana Build Output para ver los mensajes de error

  2. Pestaña Sync: Muestra las tareas que ejecuta Gradle para sincronizarse con los archivos del proyecto. De manera similar a la pestaña Build, si encuentras un error de sincronización, selecciona elementos del árbol para obtener más información al respecto.
  3. Restart: Realiza la misma tarea que elegir Build > Make Project mediante la generación de archivos de compilación intermedia para todos los módulos del proyecto.
  4. Toggle view: Activa o desactiva la visualización de la ejecución de tareas como un árbol gráfico, y muestra resultados de texto más detallados de Gradle. Este es el mismo resultado que se muestra en la ventana Gradle Console  en Android Studio 3.0 y versiones posteriores.

Si las variantes de compilación usan variantes de productos, Gradle también invocará tareas para compilar esas variantes de producto. Para ver la lista de todas las tareas de compilación disponibles, haz clic en View > Toll Windows > Gradle (o en Gradle , en la barra de ventanas de herramientas).

Si se produce un error durante el proceso de compilación, Gradle podría recomendar algunas opciones de la línea de comandos que te ayuden a resolver el problema, como --stacktrace o --debug. Para usar opciones de la línea de comandos con el proceso de compilación, haz lo siguiente:

  1. Abre el diálogo Settings o Preferences:
    • En Windows o Linux, selecciona File > Settings en la barra de menú.
    • En Mac OS X, selecciona Android Studio > Preferences en la barra de menú.
  2. Navega hasta Build, Execution, Deployment > Compiler.
  3. En el campo de texto junto a Command-line Options, ingresa las opciones de la línea de comandos.
  4. Haz clic en OK para guardar los cambios y salir.

Gradle aplicará estas opciones de la línea de comandos la próxima vez que intentes compilar la app.

Apply Changes

En Android Studio 3.5 y versiones posteriores, Apply Changes te permite enviar cambios de código y recursos a la app en ejecución sin reiniciarla y, en algunos casos, sin reiniciar la actividad actual. Esta flexibilidad te permite controlar qué partes de tu app se reinician cuando quieres implementar y probar pequeños cambios incrementales y, al mismo tiempo, preservar el estado actual del dispositivo. Apply Changes utiliza funciones de la implementación de JVMTI para Android que son compatibles con dispositivos que ejecutan Android 8.0 (nivel de API 26) o versiones posteriores. Para obtener más información sobre cómo funciona Apply Changes, consulta Project Marble de Android Studio: Apply Changes.

Requisitos

La acción de Apply Changes solo está disponible si se cumplen las siguientes condiciones:

  • Si compilas un APK de la app mediante una variante de compilación de depuración.
  • Si implementas la app en un emulador o un dispositivo de destino que ejecuta Android 8.0 (nivel de API 26) o versiones posteriores.

Cómo usar Apply Changes

Utiliza las siguientes opciones cuando desees implementar los cambios en un dispositivo compatible:

Apply Changes and Restart Activity Ícono de Apply Changes and Restart Activity

Reinicia la actividad para intentar aplicar los cambios de código y de recurso, pero sin reiniciar la app. Por lo general, puedes usar esta opción cuando modificas un código en el cuerpo de un método o cuando modificas un recurso existente.

Para realizar esta acción, también puedes presionar Ctrl+Alt+F10 (o Control+Shift+Command+R en macOS).

Apply Code Changes Ícono de Apply Code Changes

Intenta aplicar solo los cambios de código sin reiniciar nada. Por lo general, puedes usar esta opción cuando modificas el código en el cuerpo de un método, pero no has modificado ningún recurso. Si modificaste el código y los recursos, entonces usa Apply Changes and Restart Activity.

Para realizar esta acción, también puedes presionar Ctrl+F10 (o Control+Command+R en macOS).

Run Ícono Run

Implementa todos los cambios y reinicia la app. Usa esta opción cuando los cambios que hayas realizado no se puedan aplicar mediante ninguna de las opciones de Apply Changes. Para obtener más información sobre los tipos de cambios que requieren reiniciar la app, consulta Limitaciones de Apply Changes.

Cómo habilitar la ejecución de resguardo para Apply Changes

Después de hacer clic en Apply Changes and Restart Activity o Apply Code Changes, Android Studio compila un nuevo APK y determina si se pueden aplicar los cambios. Cuando no se pueden aplicar los cambios debido a que se produciría un error en Apply Changes, Android Studio te solicita que vuelvas a ejecutar Ícono Run la app. Sin embargo, si no quieres recibir la solicitud cada vez que ocurra esto, puedes configurar Android Studio para que vuelva a ejecutar automáticamente la app cuando no se puedan aplicar los cambios.

Para habilitar este comportamiento, haz lo siguiente:

  1. Abre el diálogo Settings o Preferences:

    • En Windows o Linux, selecciona File > Settings en la barra de menú.
    • En macOS, selecciona Android Studio > Preferences en la barra de menú.
  2. Ve a Build, Execution, Deployment > Deployment.

  3. Selecciona las casillas de verificación para habilitar el resguardo de ejecución automático para cualquiera de las acciones de Apply Changes.

  4. Haz clic en OK.

Limitaciones de Apply Changes

Apply Changes está diseñado para acelerar el proceso de implementación de la app. Sin embargo, existen algunas limitaciones respecto de cuándo se puede usar. Si experimentas algún problema al usar Apply Changes, informa un error.

Cambios de código que requieren reiniciar la app

No es posible aplicar algunos cambios de código y recursos hasta que se reinicie la app, incluidos los siguientes:

  • Agregar o borrar un método o un campo
  • Cambiar las firmas de métodos
  • Cambiar modificadores de métodos o clases
  • Cambiar la herencia de clase
  • Cambiar los valores de enumeraciones
  • Agregar o quitar un recurso
  • Cambiar el manifiesto de la app
  • Cambiar las bibliotecas nativas (archivos .so)

Bibliotecas y complementos

Algunas bibliotecas y complementos realizan cambios automáticamente en los archivos de manifiesto de la app o en los recursos a los que se hace referencia en el manifiesto. Estas actualizaciones automáticas pueden interferir en Apply Changes de las siguientes maneras:

  • Si una biblioteca o un complemento realiza cambios en el manifiesto de la app, no podrás usar Apply Code Changes Ícono de Apply Code Changes ni Apply Changes and Restart Activity Ícono de Apply Changes and Restart Activity, y deberás reiniciar la app para poder ver los cambios.
  • Si una biblioteca o un complemento realiza cambios en los archivos de recursos de la app, no podrás usar Apply Code Changes Ícono de Apply Code Changes y deberás usar Apply Changes and Restart Activity Ícono de Apply Changes and Restart Activity para ver esos cambios.

A fin de evitar estas limitaciones, inhabilita todas las actualizaciones automáticas para las variantes de compilación de depuración.

Por ejemplo, Crashlytics actualiza los recursos de la app con un ID de compilación único durante cada compilación, lo que evita usar Apply Code Changes Ícono de Apply Code Changes y requiere que reinicies la actividad de la app para ver los cambios. Puedes inhabilitar este comportamiento para poder usar Apply Code Changes junto a Crashlytics con las compilaciones de depuración.

Código que hace referencia directamente al contenido en un APK instalado

Si el código hace referencia directamente al contenido del APK de la app instalado en el dispositivo, ese código puede causar fallas o comportamientos incorrectos después de hacer clic en Apply Code Changes Ícono de Apply Code Changes. Ese comportamiento se produce porque al hacer clic en Apply Code Changes, se reemplaza el APK subyacente del dispositivo durante la instalación. En esos casos, puedes hacer clic en Apply Changes and Restart Activity Ícono de Apply Changes and Restart Activity o en Run Ícono Run.