2011-11-13 9 views
11

Hasta ahora, la única forma en que he podido depurar en Eclipse es usar Treeshaker con la rama buggy 2.8 de Scala IDE. Si intento compilar con Scala IDE sin Treeshaker, obtengo errores de ClassNotFound por this long thread en scala-on-android.Scala + Android: ¿Alguien está construyendo y depurando con éxito en Eclipse?

Lo ideal sería construir con sbt-android y depurar dentro de Eclipse, pero no he podido hacerlo con éxito. Lo más cercano a la depuración de un proyecto sbt-android que pude lograr fue construir el proyecto sbt-android con el comando android: package-debug, iniciar el ejecutable con el comando android: start-emulator, y luego conectar DDMS a la aplicación hilo.

Sin embargo, tenía un conjunto de puntos de interrupción que solo se habría ejecutado después de haber conectado el depurador al subproceso, y ninguno de ellos hizo que el subproceso se detuviera cuando se alcanzó.

¿Alguien ha podido depurar el código de Scala Android en Eclipse usando otras herramientas además de Treeshaker con Scala IDE basado en Scala 2.8?

ACTUALIZACIÓN: Estoy depurando correctamente (no compilando) en Eclipse después de compilar desde la línea de comandos con sbt, sbteclipse y android-plugin.

Lo que hice fue utilizar el nuevo menú de proyectos de Android de Eclipse, conectarme a la fuente existente y dirigirla al directorio ./src/main. Luego Eclipse reconoció la configuración de Android, y DDMS reconoció que la tarea pertenecía al proyecto Eclipse Android.

También tuve que reconfigurar las carpetas de origen de la ruta de compilación Java del proyecto Eclipse quitando la carpeta src de la ruta de compilación y agregando la carpeta ./scala. Luego tuve que reiniciar Eclipse para agregar puntos de interrupción al archivo Scala.

Here's some interesting discussion acerca de las dificultades para crear y depurar aplicaciones de Android con Eclipse.

+1

Si usted es un usuario de Eclipse, es posible que desee probar mi complemento AndroidProguardScala Eclipse: hace que usar Scala + Android sea un poco más fácil. https://github.com/banshee/AndroidProguardScala –

Respuesta

11

Depuración general El código de Scala que se ejecuta en Android usando Eclipse funciona bien y se comporta más o menos como depurar Scala en aplicaciones normales (que no son de Android).

Yo uso sbt con sbt-android y android: start-emulator o android: start-device.

Dependiendo de si necesito depurar el inicio de la aplicación, configuro la opción para esperar al depurador en la configuración del desarrollador en el dispositivo o emulador. Para hacer esto, ejecute "DevTools"/"Configuración de desarrollo". Seleccione su aplicación y marque "Esperar por el depurador".

Luego debe seleccionar el proceso para depurar en DDMS. Asegúrese de que se muestre el puerto de depuración y luego conéctese con el depurador de Eclipse.

Una posible causa de que el depurador no instale los puntos de interrupción es que la línea del código fuente no tiene un equivalente directo en el código de bytes. Para las comprensiones vienen a la mente.

0

Utilizando Android ProguardScala, tengo éxito en la depuración, usando scala 2.10 y Eclipse 3.7 También trata de las comprensiones como el plugin habitual. Ver la respuesta detallada allí:

Eclipse, Android, Scala made easy but still does not work

La única característica que falta es el nuevo depurador Scala en el último plugin Scala eclipse, que aún no está integrado. Por ejemplo, para depurar un mapa, deberá ir a través de archivos como Map.scala, ArrayBuffer.scala, Object.Scala, y así sucesivamente.

Cuestiones relacionadas