Tiempo de construcción largo con sbt android-plugin

He creado una aplicación de demostración con el sbt android-plugin.

La aplicación es muy simple. He colocado un archivo MainActivity.java en /src/main/java/my/package/ y cuando se presiona un botón, lo llevará a una segunda Activity pero se realizará en Scala .

Todo está funcionando bien, pero los tiempos de construcción me están matando. Cuando modifico algo, lo ejecuto en mi dispositivo mediante:

> Android: paquete-depuración

> Android: dispositivo de arranque

Mi problema es que se necesita casi un minuto completo para construir un proyecto de dos actividades. ¿Hay otra forma de compilar y ejecutar?

Esta es mi salida de android: package-debug

> Android: package-debug [info] Escrito /Users/macarse/Documents/demo/target/src_managed/main/scala/my/package/TR.scala [info] Compilando 1 fuente de Scala a / Users / macarse / Documents / demo /target/scala-2.9.0-1/classes … ProGuard, versión 4.6 ProGuard está disponible bajo la GNU General Public License. Por lo tanto, debe asegurarse de que los programas que enlazan con él (scala, …) llevan también la GNU General Public License. Como alternativa, puede solicitar una excepción con el autor de ProGuard. Directorio de programa de lectura [/Users/macarse/Documents/demo/target/scala-2.9.0-1/classes] Programa de lectura jar [/Users/macarse/.sbt/boot/scala-2.9.0-1/lib/scala -library.jar] (filtrada) 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 frasco de salida [/Users/macarse/Documents/demo/target/classes.min.jar] Copia de recursos del directorio de programas [/Users/macarse/Documents/demo/target/scala-2.9.0-1/classes] Copia de recursos Desde el programa jar [/Users/macarse/.sbt/boot/scala-2.9.0-1/lib/scala-library.jar] (filtrado) [info] Dexing / Users / macarse / Documents / demo / target / classes. Dex [info] Packaging /Users/macarse/Documents/demo/target/demo-0.1.apk [success] Tiempo total: 56 s, completado el 29 de octubre de 2011 16:22:54

Hay un par de opciones:

  • Preinstalar scala en el teléfono / emulador
  • Incluir scala predexed como una biblioteca

También hay un proyecto llamado treeshaker para Eclipse que es mucho más rápido que proguard, pero no está integrado con el plugin sbt todavía.

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

Le sugeriré que cambie a Scala 2.8 si no usó las características de Scala 2.9, porque 2.8 tiene una biblioteca estándar más pequeña.

Por otro lado, no utilice android:package-debug cuando no sea necesario. compile compilará su código fuente, es suficiente si sólo quiere asegurarse de que su programa podría ser compilado.

Sólo usa android:package-debug cuando estés a punto de probarlo en el dispositivo Android, esto te ahorrará tiempo.

  • Cómo administrar la autenticación / autorización para las solicitudes de usuarios enviadas desde aplicaciones móviles nativas que llaman a Play2! -Scala REST services
  • Cómo bajar la versión proguard en androide gradle estudio?
  • Android + Scala + Intelli 13
  • Uso de Scala con Java en Android Studio
  • Modo correcto de usar YouTube.Builder
  • Android / Scala proyecto en IntelliJ 14 compila, pero se bloquea cuando se inicia no encontrar la clase Scala
  • Problemas con la ejecución del archivo APK de Android al fusionar archivos dex con Scala
  • Scala en Android: java.lang.NoSuchMethodError: java.lang.String.isEmpty
  • Uso de AndroidAnnotations con Scala y Gradle
  • Error al ejecutar 'sbt start-device'
  • Scala + Android Novato
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.