Android: ¿Cómo debo responder al diálogo "Hot Code Replace Failed" en Eclipse?

Cuando mi aplicación Android ya se está ejecutando y cambio el código obtengo el cuadro de diálogo "Hot Code Replace Failed".

  1. Me pregunto cuál es la respuesta correcta (finalizar o desconectar) si quiero que Eclipse actualice mi código en el dispositivo cuando lo encuentre.

  2. ¿Cuál es la diferencia entre terminar y desconectar?

  3. Además, me pregunto si hago clic en el mensaje "No mostrar error cuando no se admite el reemplazo de código en caliente". ¿Qué hará Eclipse en el futuro cuando se produzca este escenario?

Cuadro de diálogo "Reemplazar código en caliente"

Dependiendo de la VM utilizada (Dalvik en este caso), algunos cambios de código pueden realizarse durante la depuración que se 'hot deploy' o 'hot replace'. Esto significa que los cambios de código tendrán efecto inmediatamente en el emulador y podrá probarlos sin necesidad de volver a implementar la aplicación. Este tipo de re-implementación en caliente se utiliza más comúnmente cuando se trabaja con aplicaciones empresariales que pueden tardar 10 minutos en generar y desplegar, por lo que se pierde mucho tiempo durante el desarrollo.

La VM HotSpot (la VM que se utiliza normalmente en las PC) sólo permite el reemplazo de código simple y falla si intenta agregar / cambiar el nombre de un miembro o método de campo. No estoy seguro de qué tipo de soporte de la VM Dalvik proporciona, pero si realiza un cambio que no es compatible, obtendrá ese cuadro de diálogo.

Ahora, en cuanto a los botones:

  • Continuar: Acepte que los cambios que ha realizado no surtirán efecto inmediatamente en el emulador y seguirá depurando
  • Terminar: eliminar la aplicación
  • Desconectar: ​​no destruya la aplicación, pero termine la sesión de depuración (es decir, desconecte el depurador)

Si marca la casilla, siempre continuará.

Me pregunto cuál es la respuesta correcta (finalizar o desconectar) si quiero que Eclipse actualice mi código en el dispositivo cuando lo encuentre.

No hay manera directa de tener Eclipse actualizar su código en ejecución en el emulador cuando se encuentra este diálogo como la VM Dalvik no suppot hot swap, es decir, la actualización de código en ejecución. Tendrá que volver a implementar la aplicación en su emulador manualmente.

¿Cuál es la diferencia entre terminar y desconectar?

  • Terminate terminará la aplicación que se está depurando en el emulador / dispositivo.

  • Desconectar sólo desconectará el depurador y dejará la aplicación en ejecución en el emulador / dispositivo.

Además, me pregunto si hago clic en el mensaje "No mostrar error cuando no se admite el reemplazo de código en caliente". ¿Qué hará Eclipse en el futuro cuando se produzca este escenario?

"No mostrará el error cuando el reemplazo de código en caliente no es compatible"; obviamente;) – es decir, no le avisará y cualquier cambio que haga no será intercambiado en caliente en la aplicación en ejecución (porque la VM Dalvik no Soporte hot-swapping como JVM de Oracle por ejemplo).

Normalmente termino y vuelvo a publicar mi aplicación con el código modificado.

  • No se puede iniciar Eclipse - Java se inició pero devolvió el código de salida = 13
  • Actualizar a phonegap 3.3.0
  • Explorador de archivos vacío en Eclipse DDMS
  • ¿Cómo quitar completamente una biblioteca externa en un proyecto?
  • ActionBarSherlock: java.lang.NoClassDefFoundError: com.actionbarsherlock.R $ styleable
  • ¿Cómo puedo usar adb para desinstalar un APK de varios dispositivos conectados?
  • Eclipse no abrirá archivos Xml de Android
  • No se puede completar la instalación debido a una dependencia conflictiva. La ubicación del SDK de Android no se ha configurado en las preferencias
  • Código de la versión de incremento automático en la aplicación para Android
  • Cómo deshabilitar el botón de nuevo presionado en la clase de fragmento de Android
  • Modo de depuración de Android Eclipse - Temas
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.