2012-07-11 8 views
23

Cuando estoy depurando mi código en Eclipse, me molesta cuando abro el editor para descubrir que no puedo editarlo porque en realidad estoy viendo la fuente del archivo .class. ¿Cómo puedo obtener Eclipse para abrir el archivo .java en lugar del archivo .class cuando está en modo de depuración?Apertura del código fuente de la vista de depuración edita .class después de la actualización de Android R18

EDIT: Cuando llegué a un punto de interrupción en el código , que me lleva a MyFile.class, en lugar de MyFile.java, por lo que puedo ver mi código pero no editarlo.

EDIT: Supongo que tiene que ver con somethign Android y ADT R18

+0

¿Qué clase? ¿Es una clase de biblioteca a la que no has adjuntado la fuente? –

+0

No, es mi código el que estoy escribiendo. – styler1972

+0

Eso es extraño. Nunca había visto ese comportamiento antes. –

Respuesta

51

Después de que finalmente encontré algo de tiempo y una buena razón para analizar este tema un poco más profundo, elaboraré un poco sobre la respuesta de Thornbjorn.

Últimamente, Google cambió la forma en que sus proyectos de Android empaquetan sus bibliotecas externas de Android. En ADT R17 (creo) comenzó a empacar el origen de proyectos externos en archivos .jar y los incluye directamente en su proyecto en la carpeta Dependencias de Android o/libs.

Ahora, cuando el depurador llega a un punto de interrupción, muestra su código fuente en .jar, básicamente diciéndole que edite un archivo .class. El problema es que este archivo es de solo lectura, por lo que debe buscar su fuente .java manualmente. (Dolor)

La solución consiste en hacer clic con el botón derecho en el nombre del proyecto en la vista de depuración y seleccionar "Editar búsqueda de origen ..." en el menú. A partir de ahí, elimine la ruta de búsqueda predeterminada. Después de eso, agregue manualmente los proyectos asociados (no los jar) a los que hace referencia su proyecto. Esto se hace haciendo clic en Agregar, seleccionando Proyecto Java, luego verificando los proyectos apropiados.

+7

He buscado durante mucho tiempo para encontrar esta opción "Editar búsqueda de origen ...". ¡Finalmente lo encontré donde se menciona arriba en Debug VIEW! (La ventana con la pila y los hilos enumerados :)) ¡Gracias! –

+1

¡excelente respuesta! :) – Krystian

+5

Muchas gracias! Permítanme escribir los pasos detallados para aquellos que todavía no saben cómo solucionarlos. 1. Comience a depurar su proyecto en eclipse. 2. Menú Eclipse: Ventana-> Mostrar vista-> Depurar. 3. En la vista Depurar, haga clic con el botón derecho en el nombre de su proyecto y seleccione "Editar búsqueda de origen ..." 4. No es necesario eliminar "Predeterminado", simplemente haga clic en "Agregar ..." -> Proyecto Java -> Proyecto (biblioteca) que contiene los archivos de origen. Asegúrese de que el proyecto seleccionado sea superior a 'Predeterminado' en el cuadro de diálogo 'Editar ruta de búsqueda de origen'. –

2

Por alguna razón Eclipse no cree que el archivo de clase proviene de su archivo Java. Con frecuencia, este es un camino de compilación mal configurado, o un archivo jar utilizado en lugar del proyecto que genera el archivo jar.

Mire en el panel del administrador de proyectos (botón <->) para ver dónde encuentra Eclipse el archivo de clase y luego descubra por qué usa esa ubicación en lugar de su proyecto con el archivo fuente.

+0

Creo que tienes razón debido a la forma en que Android ahora está empacando bibliotecas externas de Android en jarras – styler1972

5

OK, entonces odio ser "ese tipo", dado el número de personas para quienes esto funcionó, pero esto no funcionó en absoluto para mí. Quiero decir que el elemento de menú "Editar búsqueda de fuente ..." no estaba en el menú contextual. No me perdí las instrucciones para hacer esto en la perspectiva de depuración (presumiblemente en el Explorador de proyectos en la perspectiva de depuración). Lo intenté mientras la aplicación se estaba ejecutando y mientras la aplicación se suspendió. Traté de revisar el menú para el proyecto de la aplicación (presumiblemente a qué se refieren las instrucciones) y para el proyecto de la biblioteca. No dados. Esto es con la última versión de Eclipse.

Sin embargo, yo era capaz de resolver el problema:

  1. Establecer un punto de interrupción, ya sea en su aplicación o la biblioteca que está tratando de asociar el origen de. En realidad, puede poner esto en cualquier lugar siempre que la biblioteca que está intentando vincular fuente tenga una función que aparecerá en la pila de llamadas cuando se llegue al punto de interrupción.
  2. Comience a depurar su aplicación.
  3. Navegue su aplicación para llegar al punto de interrupción.
  4. Asegúrate de estar en la perspectiva de depurar.
  5. En la pestaña Depuración (donde aparece la pila de llamadas), encuentre cualquier función de su biblioteca.
  6. Haga clic con el botón derecho en esa función. La opción de menú "Editar búsqueda de fuente ..." debería estar allí (cerca de la parte inferior).
  7. Desde aquí, las instrucciones son las mismas que las de Styler. Haga clic en "Agregar", seleccione "Proyecto Java" y agregue su proyecto (o múltiples proyectos).
  8. Antes de salir de la ventana "Editar búsqueda de origen ...", si eres como yo, verás que Eclipse ha elegido agregar un montón de cosas a la lista que no elegiste. Algunas de esas cosas (probablemente en las partidas ampliables con nombres como "bibliotecas privadas Android" pueden ser los tarros para las bibliotecas que acaba de agregar fuente para. Eliminar los frascos de la lista.
  9. beneficio!
6
  1. Abrir main project properties -> Java Build Path -> Projects ficha y añadir sobresale el proyecto principal dependen.
  2. Cambiar a Order and Export ficha y desactive Android Dependencies
  3. Disfrute
+2

¡He intentado _todos_ las otras sugerencias y esta es la que funcionó para mí! ¡Gracias! – dhaag23

Cuestiones relacionadas