2011-10-29 9 views
9

He creado una aplicación de demostración con sbt android-plugin.Tiempos de compilación largos con sbt android-plugin

La aplicación es muy simple. He colocado un archivo MainActivity.java bajo /src/main/java/my/package/ y cuando se presiona un botón lo lleva a un segundo Activity pero hecho en Scala.

Todo funciona bien, pero los tiempos de construcción me están matando. Cuando modifico algo me quedo en mi dispositivo usando:

> android: paquete de depuración

> android: puesta dispositivo

Mi problema es que toma casi un minuto completo para construir un proyecto de dos actividades. ¿Hay alguna otra manera de compilar y ejecutar?

Esta es mi salida del androide: paquete de depuración

> android: paquete de depuración [info] escribió /Usuarios/macarse/Documentos/demo/target/src_managed/main/Scala/mi/paquete/TR.scala [info] Recopilación de 1 fuente de Scala en /Users/macarse/Documents/demo/target/scala-2.9.0-1/classes ... ProGuard, versión 4.6 ProGuard se publica bajo el General GNU Licencia pública. Por lo tanto, debe asegurarse de que los programas que lo vinculan al (scala, ...) también lleven la Licencia pública general de GNU. Alternativamente, puede solicitar una excepción con el autor de ProGuard. Leyendo el directorio del programa [/Users/macarse/Documents/demo/target/scala-2.9.0-1/classes] Lectura programa jar [/Users/macarse/.sbt/boot/scala-2.9.0-1/ lib/scala-library.jar] (filtrado) Biblioteca de lectura jar [/Users/macarse/Documents/android-sdk-mac_86/platforms/android-4/android.jar] Nota: ¡Está ignorando todas las advertencias! Preparación del archivo de salida [/Users/macarse/Documents/demo/target/classes.min.jar] Copia de recursos del directorio de programa [/Users/macarse/Documents/demo/target/scala-2.9.0-1/classes ] Copiando recursos del programa jar [/Users/macarse/.sbt/boot/scala-2.9.0-1/lib/scala-library.jar] (filtrado) [información] Dexing /Users/macarse/Documents /demo/target/classes.dex [info] Embalaje /Users/macarse/Documents/demo/target/demo-0.1.apk [success] Total tiempo: 56 s, completado 29 de octubre de 2011 4:22:54 PM

Respuesta

3

Se necesita mucho tiempo porque Proguard necesita procesar La biblioteca estándar de Scala para minimizar el archivo .apk que obtienes, y la biblioteca estándar de Scala es enorme.

Sugeriré que cambie a Scala 2.8 si no utilizó las características de Scala 2.9, porque 2.8 tiene una biblioteca estándar más pequeña. Por favor, no use android:package-debug cuando no sea necesario. compile compilará su código fuente, es suficiente si solo quiere asegurarse de que su programa pueda compilarse.

Solo use android:package-debug cuando vaya a probarlo en el dispositivo Android, esto le ahorrará tiempo.

+0

Gracias por su respuesta. La compilación AFAIK también hace el pase proguard, por lo que también llevará mucho tiempo. – Macarse

+1

Eso no es correcto, al menos en android-plugin 0.6.x. 'compile' no hará el pase proguard. –