IntelliJ Idea 12 + Android + Scala hoy en día

Como me han sugerido, he publicado algunos artículos que describen cómo hacer que IntelliJ Idea y Android y Scala trabajen juntos, pero resultó que todos fueron escritos hace 1 ó 2 años. Y es probable, algo ha cambiado desde ese momento y ahora hay otras soluciones para lograr este objetivo. Concretamente, hay una nueva solución https://github.com/yareally/android-scala-intellij-no-sbt-plugin para la que no sé si funciona bien o no.

Tengo IntelliJ Idea 12, Android SDK, Scala, SBT y todas las demás cosas instaladas y configuradas. Lo único que queda es configurar IntelliJ Idea 12 para que funcione con Scala en lugar de Java para crear aplicaciones de Android.

Por favor, no cierre la pregunta. Vi las preguntas anteriores similares a las mías, pero, como he dicho, estaban anticuadas.

La pregunta es, ¿cómo lo hago ahora (mayo de 2013) ?

PS He probado Android Development Studio, pero ni siquiera fue capaz de lanzarlo debido a muchos errores.

Actualización: Puedes leer el tutorial que escribí sobre la próxima versión de SBT-Android (0.7). La mayoría de sus preocupaciones deben ser tratadas allí. Si no lo son, entonces eso es un problema.


Actualización 2: Por razones de equidad, también hay un gran trabajo en progreso: android-sdk-plugin por @pfn en GitHub.

Respecto a ProGuard y tiempos de construcción:

  • Yo mismo, estoy precargando bibliotecas grandes en mi dispositivo con sbt-android . Esto elimina completamente ProGuard, pero requiere root.

  • La última versión de android-sdk-plugin cuenta con un nuevo caché ProGuard (igual que AndroidProguardScala ), que es bastante dulce y elimina a ProGuard en la mayoría de los casos durante el desarrollo.


He estado contribuyendo a SBT-Android por unos meses, así que sé que es mucho mejor que las otras soluciones.

A partir de ahora, el plugin evoluciona rápidamente, con:

  • Full IntelliJ apoyo (gracias a SBTIdea ) llegando muy pronto (de hecho, ya funciona, sólo tengo que enviar las solicitudes de extracción)
  • Preload automático de Scala en un emulador o dispositivo enraizado (Simplemente ejecute android:preload-{device, emulator} , no necesita Proguard para el desarrollo!)
  • Debe apoyar simples proyectos de Gradle fuera de la caja con un mínimo esfuerzo (la estructura de directorios es muy similar)
  • Configuración es mucho más fácil (Sólo tiene que agregar el complemento y un archivo de proyecto y que está establecido!)

La versión actual no tiene la mayoría de estas sutilezas, pero están llegando en las semanas siguientes. Algo de documentación es, por supuesto, va a seguir muy pronto después, con ejemplos y todo lo que voy a pensar.

Te animo a unirte a la Scala en Google Android Group y compartir tus pensamientos, por cierto. También hay un #sbt-android en Freenode si estás en IRC.

Sólo quería sonar en esto. He utilizado https://github.com/yareally/android-scala-intellij-no-sbt-plugin , aunque he encontrado las instrucciones de ser vago, no haber utilizado nunca IntelliJ antes de esto.

Probablemente ya tienes todo solucionado y estamos contentos con SBT, pero para mis propósitos sólo quería probar Scala en Android sin todas las campanas y silbidos extra. Así que, aquí hay algunas pequeñas cosas que tenía que hacer para obtener el trabajo de no-sbt-plugin de trabajo:

Terminé incluyendo el scala-compiler.jar (junto con la scala-library.jar y scala-reflect.jar) como una Biblioteca Global: Introduzca aquí la descripción de la imagen

De esta manera, el compilador tiene acceso a la biblioteca y código de reflexión, de lo contrario estaba recibiendo errores. Si no incluye la biblioteca, el IDE se queja de que el compilador necesita una biblioteca asociada y, si no incluye reflejar, escupe un montón de errores en tiempo de compilación que no puede encontrar reflejan las definiciones de clase.

Tuve que incluir scala-library.jar como módulo de dependencia también (que tuvo el efecto secundario de incluirlo en la sección de Bibliotecas también): Introduzca aquí la descripción de la imagen

Antes de hacer todo eso, tuve el plugin Scala instalado, creé un proyecto de Android, y simplemente agregé una faceta de Scala (ignoro la configuración de la memoria, estaba engañando): Introduzca aquí la descripción de la imagen

Finalmente, tuve que resolver algunos errores de compilación restantes agregando algunas líneas "-dontwarn" al archivo proguard txt. Suficientemente simple.

Funciona de maravilla. No he hecho nada sustancial con ella todavía, pero estoy deseando usar Scala en mi próximo proyecto de Android.

Escribí la biblioteca de Scaloid que hace que el desarrollo de Android sea más conciso con Scala.

Para un punto de partida rápido, escribí un proyecto hola-world maven para Scala + Android.

Yo uso Intellij como un IDE principal, e importa el proyecto con un encanto.

He pasado por esto hace un mes y me las arreglé para que funcione muy bien con Gradle.

Aquí está el resultado: https://github.com/ghik/akkdroid

Se trata de un simple proyecto cliente-servidor que utiliza Scala y Akka, con cliente en Android, desarrollado con IntelliJ IDEA. Sé que cliente-servidor realmente no tiene sentido con Akka, pero eso es solo un proyecto universitario simple para probar que estas tecnologías pueden trabajar juntas.

Tenga en cuenta, sin embargo, que la secuencia de comandos gradle en este proyecto está destinada sólo a generar proyecto IDEA, tiene que ser ampliado para poder realizar la compilación de aplicaciones Android adecuada.

He estado observando este hilo durante varios meses, finalmente tengo tiempo para hacer las pruebas reales.

Uso de IntelliJ 13 con SBT 0.13 y Scala 2.10.3.

  1. El SBT-Android no se ha actualizado desde hace varios meses. Me pareció que las instrucciones estaban anticuadas y no he logrado crear un proyecto de trabajo.

  2. El android-sdk-plugin funcionó. Simplemente seguí los sencillos pasos y conseguí "hola mundo" corriendo en mi teléfono. Pero la importación del proyecto SBT en IntelliJ no funcionará correctamente, necesitará algunas modificaciones de proyecto manualmente.

  3. También he intentado crear un proyecto de Android primero y luego añadir el marco de Scala, pero no funcionó como esperaba.

  • JAVA_OPTS para aumentar el tamaño del montón
  • El emulador de Android no instala la aplicación cuando se utiliza el comando 'emular android'
  • Construir Firefox para Nexus 7 (mero) recibe mensajes de error con Ubuntu 13.10
  • Ubuntu 64 con Android 64 Bundle no puede encontrar el ejecutable de adb
  • Construcción iónica Android | Error: No se han encontrado herramientas de compilación instaladas. Instala las herramientas de compilación de Android
  • Android, configuración de un entorno de compilación de Linux, libgl1-mesa-glx: paquete i386 tiene dependencias no satisfechas
  • Error al crear la extensión nativa de Gem al instalar Calabash Android en Ubuntu
  • Los emuladores de Genymotion dan error Open GL en Kubuntu 13.10 64-bit
  • Genymotion congela todo Ubuntu Desktop
  • El proyecto VLC para Android falló en Ubuntu 12.04
  • No se puede iniciar eclipse desde adt bundle en ubuntu 12.04
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.