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.
- Sigue recibiendo este error cuando estoy tratando de compilar con Gradle en Android Studio en UBUNTU 14.04
- Android SDK Java: no encontrado
- Cordova build - No se pudo resolver com.android.tools.build:gradle:1.5.0
- Aumento del tamaño del montón al crear el código fuente de Android en Ubuntu 15.10
- No se pudo encontrar la clase 'android.webkit.WebResourceResponse' cuando se ejecuta HelloCordova en Android 2.2
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.
- Error: spawn EACCES al intentar construir Ionic app en Ubuntu 15.10
- Conectar el teléfono a la computadora hace que Eclipse se bloquee (peor después de actualizar a ICS)
- Cómo reparar Genymotion en linux ElementaryOS con error `CXXABI_1.3.8 'no encontrado
- Gradle invocation "completar con éxito con 1 error" en Ubuntu 13.10
- Eclipse (paquete de Android) Crashing
- No puede firmar Android APK de Jenkins, pero funciona desde la línea de comandos
- Reaccione errorTimeout nativo que consigue lista del dispositivo. Cuando se ejecuta hola mundo en ubuntu
- Error: Programa "/ NDK-build" no se encuentra en PATH
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:
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):
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):
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.
-
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.
-
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.
-
También he intentado crear un proyecto de Android primero y luego añadir el marco de Scala, pero no funcionó como esperaba.
- Cambiar el color dibujable mediante programación
- Cómo centrar el indicador de progreso en ProgressDialog fácilmente (cuando no se pasa ningún título / texto)