Cómo crear y ejecutar tu 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 .

Android Studio te advertirá si intentas iniciar el proyecto en un dispositivo que tiene un error o una advertencia asociados. La iconografía y los cambios estilísticos diferencian entre errores (selecciones de dispositivos que den como resultado una configuración dañada) y advertencias (selecciones del dispositivo que pueden dar como resultado un comportamiento inesperado, pero aún se pueden ejecutar).

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

Conflictos en el diálogo de variantes de compilación de Android Studio

Es posible que veas mensajes de error en el diálogo de variantes de compilación de Android Studio que indican conflictos entre variantes de compilación, como las siguientes:

Ventana de variante de compilación que muestra errores de conflicto de variantes

Este error no indica un problema de compilación con Gradle, solo indica que el IDE de Android Studio no puede resolver símbolos entre las variantes de los módulos seleccionados.

Por ejemplo, si tienes un módulo M1 que depende de la variante v1 del módulo M2, pero M2 tiene la variante v2 seleccionada en el IDE, tienes símbolos sin resolver en el IDE. Supongamos que M1 depende de una clase Foo que solo está disponible en v1. Cuando se selecciona v2, el IDE no conoce esa clase, no la resolverá y mostrará errores en el código de M1.

Estos mensajes de error aparecen porque el IDE no puede cargar un código para múltiples variantes a la vez. Sin embargo, en términos de la compilación de tu app, la variante seleccionada en este diálogo no tendrá efecto porque Gradle compila tu app con el código fuente especificado en tus filtros predeterminados de compilación de Gradle, no en función de lo que se carga en la actualidad en el IDE.

Cómo compilar un proyecto

El botón Run  compila e implementa la app 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.
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.

Ediciones en vivo

Ediciones en vivo es una función experimental que se introdujo en Android Studio Electric Eel Canary 1 y te permite actualizar elementos que admiten composición en Vista previa de Compose, emuladores y dispositivos físicos en tiempo real. Cuando actualizas una función que admite composición, los cambios se aplican en la Vista previa de Compose y en tu dispositivo o emulador. Esta funcionalidad minimiza los cambios de contexto entre escribir y compilar tu app, lo que te permite enfocarte en escribir código durante más tiempo sin interrupciones.

Ediciones en vivo se centra en cambios de código que se relacionan con la IU y la UX. Esta función no admite cambios, por ejemplo, actualizar firmas de métodos, agregar métodos nuevos o cambiar la jerarquía de clases. Para obtener más información, consulta Limitaciones.

Esta función no reemplaza la compilación y la ejecución de tu aplicación ni Apply Changes. En cambio, está diseñada para optimizar el flujo de trabajo a medida que compilas, implementas e iteras a fin de desarrollar la IU de Compose.

El flujo de trabajo de prácticas recomendadas es el siguiente:

  1. Configura tu aplicación para que pueda ejecutarse.
  2. Usa Ediciones en vivo tanto como sea posible, hasta que necesites realizar un cambio que no sea compatible con esta función, por ejemplo, agregar métodos nuevos mientras se ejecuta la app.
  3. Después de realizar un cambio no compatible, ejecuta tu app para reanudar Ediciones en vivo.

GIF del uso de Ediciones en vivo con Vista previa de Compose

Figura 1. Ediciones en vivo actualiza la Vista previa de Compose cuando se realizan cambios en los elementos de la IU.

GIF de Ediciones en vivo con un dispositivo

Figura 2. Cada vez que realizas una cambio compatible con Ediciones en vivo, la app que se está ejecutando en tu dispositivo o emulador se actualiza en tiempo real.

Cómo comenzar a usar Ediciones en vivo

Para comenzar rápidamente, sigue estos pasos a fin de crear una actividad de Compose vacía, habilitar Ediciones en vivo para tu proyecto y realizar cambios con esta función.

Cómo configurar tu proyecto nuevo

  1. Antes de comenzar, asegúrate de tener instalada la versión más reciente de Android Studio Electric Eel y de que el nivel de API de tu dispositivo físico o emulador sea al menos 30.

  2. Abre Android Studio y selecciona New Project en la ventana emergente Welcome to Android Studio. Si ya tienes un proyecto abierto, puedes crear uno nuevo si vas a File > New > New Project.

  3. Elige la plantilla Empty Compose Activity para Phone and Tablet y, luego, haz clic en Next.

    Selección de plantillas en Android Studio Figura 3. Las plantillas que puedes elegir. En Ediciones en vivo, elige Empty Compose Activity.

  4. Introduce lo siguiente y, luego, haz clic en Finish.

    • Name: HelloWorld
    • Package name: com.example.helloworld
    • Save location: Predeterminado.
    • Language: Kotlin
    • Minimum SDK: Predeterminado

    Ejemplo de la configuración del proyecto del paso 4 que se introduce en AS Figura 4. Ejemplo de la configuración del proyecto.

Cómo habilitar Ediciones en vivo

  1. En el IDE, ve a Live Edit y usa las casillas de verificación a fin de habilitar esta función para Device o Preview.

    • En Windows o Linux, ve a File > Settings > Editor > Live Edit.
    • En macOS, ve a Android Studio > Preferences > Editor > Live Edit.

    IU de la casilla de verificación de Live Edit en la configuración de Android Studio

  2. En el editor, abre el archivo MainActivity, que es el punto de entrada de tu app.

  3. Haz clic en Run Botón de la IU para implementar tu app y, luego, en Split en la parte superior derecha del editor a fin de abrir la vista previa.

  4. Después de activar Ediciones en vivo, deberías ver la marca de verificación verde de Live Edit en la parte superior derecha del editor.

    IU de la marca de verificación verde de Ediciones en vivo

    Figura 6. La marca de verificación verde y la flecha del menú desplegable de Ediciones en vivo aparecerán después de activar esta función.

Cómo realizar y revisar cambios

En el editor, cambia el método Greeting actual en MainActivity por lo siguiente. Los cambios aparecerán al instante, como se muestra en la Figura 7.

@Composable
fun Greeting(name: String) {
    Text(text = "Hello $name!",
        Modifier.padding(80.dp) // Outer padding; outside background
            .background(color = Color.Cyan) // Solid element background color
            .padding(16.dp) // Inner padding; inside background, around text)
    )
}

Cambios en el método Greeting en un dispositivo

Figura 7. Los cambios de Ediciones en vivo del método Greeting anterior aparecen al instante.

Se aplicaron los cambios en el método DefaultPreview

Figura 8. El método DefaultPreview también muestra los cambios en Vista previa de Compose.

Solución de problemas

Si no ves tus cambios en el panel de vista previa, es posible que Android Studio no las haya actualizado. Comprueba si el indicador de la IU de Live Edit muestra un ícono de pausa, que sugiere un error de compilación.

IU de estado de Ediciones en vivo

Figura 9. A fin de obtener más información sobre el error y las sugerencias para corregirlo, coloca el cursor sobre Live Edit: ON en la IU.

Limitaciones

La siguiente es una lista de limitaciones actuales.

  • Ediciones en vivo requiere un dispositivo físico o un emulador que ejecute el nivel 30 de API o superior.
  • Ediciones en vivo solo admite la edición del cuerpo de una función, es decir, no puedes cambiar el nombre de la función ni la firma, agregar o quitar funciones ni cambiar los campos que no correspondan a funciones.
  • En la actualidad, Ediciones en vivo no admite la recomposición parcial, es decir, volver a componer solo los elementos que admiten composición que se vieron afectados por un cambio de código determinado.
  • Se aplicarán penalizaciones al rendimiento en las clases que se modifiquen con Ediciones en vivo. Te recomendamos que ejecutes tu app y uses una compilación de lanzamiento limpia si evalúas su rendimiento.
  • Debes realizar una ejecución completa para que el depurador funcione en las clases que modificaste con Ediciones en vivo.
  • Es posible que la app que se esté ejecutando falle cuando realices cambios en esta con Ediciones en vivo. En ese caso, puedes volver a implementar la app con el botón Run Botón de la IU.
  • Ediciones en vivo no realiza ninguna manipulación del código de bytes que está definido en el archivo de compilación de tu proyecto; por ejemplo, la manipulación del código de bytes que se aplicaría cuando se compila el proyecto con las opciones en el menú Build o con un clic en los botones Build o Run.
  • Las funciones que no admiten composición se actualizan en vivo en el dispositivo o el emulador, y se activa una recomposición completa. Es posible que la recomposición completa no invoque la función actualizada. Para las funciones que no admiten composición, debes activar las funciones que se actualizaron recientemente o volver a ejecutar la app.
  • Ediciones en vivo no se reanuda cuando se reinicia la app. Debes volver a ejecutarla.

Preguntas frecuentes

  • ¿Cuál es el estado actual de Ediciones en vivo?
    • Ediciones en vivo está disponible en el canal Canary como una función experimental. Para activar o desactivar esta función, haz clic en File > Settings > Editor > Live Edit (Android Studio > Preferences > Editor > Live Edit en macOS).
  • ¿Cuándo debo usar Ediciones en vivo?
    • Usa Ediciones en vivo cuando quieras consultar con rapidez el efecto de las actualizaciones en los elementos de UX (p. ej., actualizaciones del modificador o animaciones) en la experiencia general de la app.
  • ¿Cuándo debo evitar el uso de Ediciones en vivo?
    • En la actualidad, Ediciones en vivo se centra en cambios del código relacionado con la IU y la UX. Evita usar esta función para realizar cambios, por ejemplo, actualizar firmas de métodos, agregar métodos nuevos o cambiar la jerarquía de clases, ya que no se admiten. Para obtener más información, consulta Limitaciones.
  • ¿Cuándo debo usar Vista previa de Compose?
    • Usa Vista previa de Compose cuando desarrolles elementos individuales que admiten composición. Vista previa visualiza los elementos de Compose y se actualiza automáticamente para mostrar el efecto de los cambios de código cuando está habilitada la función Ediciones en vivo. Además, admite la visualización de los elementos de la IU con diferentes configuraciones y estados (p. ej., el modo oscuro, los parámetros de configuración regional y la escala de fuentes).
  • ¿Cuál es la diferencia entre Ediciones en vivo en Vista previa de Compose y en un dispositivo o emulador?
    • La diferencia entre Ediciones en vivo en Vista previa de Compose y en un dispositivo o un emulador es que Ediciones en vivo actualiza la vista previa automáticamente cuando se realizan cambios en los elementos de la IU, mientras que, en un emulador o dispositivo físico, Ediciones en vivo implementa los cambios de código compatibles en la app que se está ejecutando.

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.

Cambios que dependen de la plataforma

Algunas funciones de Apply Changes dependen de versiones específicas de la plataforma de Android. Para aplicar estos tipos de cambios, tu app debe implementarse en un dispositivo que ejecute esa versión de Android (o una versión posterior).

Tipo de cambio Versión mínima de la plataforma
Agregar un método Android 11

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 quitar un campo
  • Quitar un método
  • 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.