Carlos Robles frikiblog

Me desespero depurando Android en Eclipse.

| 0 comments

Dicen que hay un nuevo procedimiento en las carceles para decidir si a un tio le dan la condicional.
Le ponen a depurar una aplicacion de más de 30 megas en eclipse. Si despues de un rato en esas condiciones ni mata a nadie ni recurre a las drogas, podemos estar seguros de que no lo va a hacer nunca.

No, es mentira, esto me lo acabo de inventar pero la verdad es que depurando una aplicación Android un poco grande con eclipse, te puedes desesperar, puedes acabar con la moral por los suelos, y lo que es peor, te puede tirar abajo la productividad. No se si es culpa del emulador de Android o del propio eclipse.

Las errores tipicos son cosas como que estés subiendo el apk, y falle sin mas explicaciones, o que haya algun timeout en medio de la depuracion, se pierda el control, y ni los breakpoints ni los steps funcionen. Estas cosas matan, pero de momento no se como atajarlas. En cambio hay otro par de errores habituales que se pueden evitar muy facilmente, y nos ahorraran horas en los desarrollos de aplicaciones grandes.

Uno es el habitual error INSTALL_FAILED_INSUFFICIENT_STORAGE
Puedes intentar cien veces depurar una aplicacion, y que te funcione 10. Muy frustrante.
Se recomiendan cosas como :

  • Reconstruir el proyecto (Project->Clean)
  • Reiniciar el emulador, y eclipse, e incluso el ordenador.
  • Cambiar la ruta del proyecto a una carpeta que no tenga espacios (que va bien tambien pare el siguiente error del que voy a hablar)

Todo esto está bien, pero no es definitivo. Lo que es muy cercano a ser definitivo, y lo que os obligo a hacer, es esto:
Vas a la configuracion de ejecucion o de depuracion (Debug Configuration de toda la vida) En la pestaña Target, abajo del todo, hay un campo de texto que pone “additional emulator command line options” Si no lo ves, maximiza la ventana, hazla todo lo grande que puedas, o inventa algo, porque está ahi, y muchas veces no se vé cuando lo tengas, escribes dentro:

	-partition-size 1024 

y reinicias el emulador
Adicionalmente, si tu aplicacion es realmente grande, y pensando en dispositivos reales antiguos, donde la particion de memoria interna del telefono puede ser pequeña, no viene de mas poner esto en tu manifest:

 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    android:installLocation="preferExternal"

que no siempre es una opcion necesaria, ni a veces deseable, y es mas, creo que solo funciona a partir de 2.2, pero aunque en la version release lo quitemos, hara la depuracion en dispositivos reales menos frustrante.

La otra cosa desesperante es el muy habitual Failed to install miactividad.apk on device ‘tal y cual’: timeout
Launch canceled!
Esto con una aplicacion grande pasa todo el tiempo, y es facil ver por qué:
Si vamos a Window -> Preferences
y despues desplegamos Android -> DDMS

vemos que ahi está configurado, en milisegundos el timeout, y que por defecto el límite es bajísimo para cualquier aplicacion un poco grande. Concretamente son 5 segundos, que siempre se va a superar aunque todo vaya bien! No le va mal ponerle un cerito mas, y pasarlo a 50 segundos.

Esto nos quita otro gran porcentaje de desesperacion!

Update: Ah! y para evitar el error que dice Installation failed due to invalid APK file! …no seas manazas, cuando ya le has dado al botoncito para ejecutar o depurar la aplicacion…no toques el codigo! aunque solo cambies un punto y coma, va a reconstruirlo entero, mientras se esta subiendo, y puede fallar.

Facebook Twitter Linkedin Plusone Digg Delicious Reddit Email

Leave a Reply

Required fields are marked *.