2012-09-19 16 views
12

Cuando estoy en depuración (eclipse), no puedo ver el contenido de variables en la vista de variables, ni en la vista Expresiones, ni en la Vista de visualización, si las variables están definidas fuera de una clase anónima pero la depuración está dentro de la clase anónima.No se puede ver el contenido variable final dentro de la clase anónima al depurar en Eclipse una aplicación de Android

Cuando intento ver el contenido en la depuración, aparece el error: x no se puede resolver con una variable.

En el siguiente ejemplo, x no puede ser resuelto:

private void someMethod(final Object x) { 
    new Runnable() { 
    public void run() { 
     Log.i(x); // x is printed correctly but cannot be resolved when in Debug 
    } 
    }.run(); 
} 

Esta pregunta se refiere al entorno de desarrollo Eclipse - con respecto a la depuración de Android. No es una discusión sobre final, ni compilación, solo depuración.

+0

This sucede en Eclipse 4.2.0 y 3.7.1 en Ubuntu 11.10 y 12.04 –

+0

Se ha abierto un error: http://code.google.com/p/android/issues/detail?id=37662 –

+0

Hay una solución: ver el variable como miembro de la instancia adjunta. Ejemplo: 'this $ 0' -> 'val $ x'. –

Respuesta

0

Tuve el mismo problema recientemente, pero actualicé el SDK android y luego reinicié el eclipse. Intente actualizar el SDK a la última versión.

+0

Hecho allí que –

+0

no funciona, este error se arrastró allí en Eclipse 4.3 ... y parece estar en cualquier clase interna que se adjunta al subproceso de interfaz de usuario. Algo se rompió y nadie está realmente seguro de cómo solucionarlo. – JPM

1

He enfrentado problemas similares al depurar aplicaciones que utilizan subprocesos. Supongo que tu aplicación es de subprocesos múltiples, porque solía enfrentar cosas como esta solo en esa situación. Esto podría deberse a que cuando ejecuta el programa directamente, la mayoría de sus subprocesos se iniciarán al mismo tiempo. Pero mientras está en modo de depuración uno de los hilos que tiene el conjunto de punto de interrupción se mantendrá, mientras que otros hilos que comenzaron a lo largo ya se habrían completado o al revés. Esa es la razón por la que las personas dicen que la depuración de una aplicación multihilo es un poco más difícil a menos que mantenga la prioridad o sincronice los hilos.

Espero que esta información ayude. Entonces, en lugar de detener el flujo con un punto de quiebre, intente imprimir el valor donde necesita saber el valor usando sysout o cosas por el estilo, que es como ejecutar el programa pero aún depurar, a su manera :)

+2

Ah, los viejos tiempos de la codificación ... ¿por qué Eclipse no puede arreglar esto ... ha estado allí desde la última versión. – JPM

Cuestiones relacionadas