|
||
|
![]() |
![]() |
Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
![]() |
|
Herramientas |
#1
|
||||
|
||||
Migrando a Android Studio
Resumo mi primer intento de migrar de Eclipse a Android Studio: dos horas perdidas, la impresión de que es muy potente y que la integración con gradle está algo verde.
Instalo el Android Studio sin SDK en Windows 8.1 64 bits, me dice que necesita el JDK 7 64 bits, instalo, detecta el Android SDK y actualiza algunas cosas, perfecto. Importo uno de los proyectos del workspace de Eclipse y parece que el importador es muy listo y donde usaba .jar detecta las dependencias y crea los ficheros gradle. Sorprendido. Primer problema, mi app tiene un minSdk 4 pero incluye bibliotecas con minSdk 7 (play services, p.ej.). En Eclipse no pasa nada porque el minSdk del manifest lo pones a mano normalmente, y ya me preocupo en mi código de no usar cosas del API 7 si estoy en dispositivos antiguos. Android Studio sin embargo tiene un auto-merger por defecto que automáticamente combina los manifest de las bibliotecas en el de la app. Y se quejaba amargamente de que mi app tenía un minSdk menor que el de la biblioteca y eso no podía ser. Pensé que habría que andar haciendo "flavors" de la app (versiones que cambian solo algunos ficheros del código, muy útil para hacer compilaciones para el entorno de pruebas o de producción fácilmente). Pero no, la solución era más fácil, hay un atributo que se llama tools ![]() Código:
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="19" tools:overrideLibrary="com.google.android.gms"/> Y así llevo hora y media ![]() Mmmh, ¡ya está! Creando un proyecto nuevo estoy viendo que el importador no era tan listo y en el build.gradle autogenerado no pone los atributos "versionCode" y "versionName". Parece que si no están, falla todo, no me preguntéis por qué. Da un poco de miedo tocar algo de los ficheros build y que casque todo sin decirte la razón. Código:
defaultConfig { applicationId "com.mocelet.christmas.lights" minSdkVersion 4 targetSdkVersion 19 versionCode 9 versionName "1.2" } ![]() Espero que os valga la experiencia para algo, era publicarlo aquí o escribirlo en evernote para acordarme en un futuro jaja
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
|
|
#2
|
||||
|
||||
Pues yo estaba pensando en instalar Android Studio y migrar todos mis proyectos y me acabas de acojonar vivo, creo que voy a seguir con Eclipse hasta que ya no saquen mas ADTs y me tenga que joder y dar el salto.
|
#4
|
||||
|
||||
El importador quitando esos dos temas lo ha hecho bien, ha importado también un proyecto biblioteca que tenía.
El editor como tal no creo que esté verde después de un año. Y el único problema de gradle es que si la configuración automática no funciona es un pequeño galimatías arreglarlo a mano. Supongo que lo usaré unos días a ver si me aclaro, hay atributos que están escritos en varios sitios a la vez y no entiendo por qué ![]() Eclipse tampoco puedo decir que no me haya hecho perder tiempo, aunque la culpa era del plugin de android, las cosas como son.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
|
#5
|
||||
|
||||
Bueno, el IDE sigue sin gustarme demasiado... falta de costumbre supongo. Eclipse compila automáticamente según vas escribiendo y te señala en rojo rápidamente todas las clases con errores. Android Studio no.
Con Eclipse te enteras de dónde están los ficheros, con Android Studio no porque te los presenta en una vista lógica. Tenía un jar que no me valía para nada ya en el directorio libs, pero si no me voy al explorador de ficheros no me entero porque en la vista normal del proyecto no sale. Lo mismo con el fichero de proguard, no sale pero está ahí. (EDIT: en efecto, desconocimiento del IDE... hay una vista que es Android, donde el fichero proguard no sale, y otra que es Project, donde sí... y que se parece más a un explorador de ficheros convencional) Gradle tiene una gran ventaja a la hora de trabajar con las bibliotecas de Google Play (amén de no andar con jars), y es la compilación selectiva: puedes cargar solo una parte de la funcionalidad. No tiene sentido que el APK ocupe dos megas más por incluir las APIs de Google Maps, Android Wear, Fit, etc. etc. si solo te interesa la parte de anuncios p.ej. P.D: Y para cambiar el nombre de un módulo (que a veces por defecto al importar es "app"), aunque hay un Rename module no basta con eso... ver solución P.D: El mensaje "Cannot resolve symbol getDefaultProguardFile" que sale al editar el build.gradle, aunque intimidatorio es un error "estético" que no afecta a la funcionalidad. Me quedo más tranquilo jeje
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Última edición por mocelet Día 18/02/15 a las 19:55:25. |
#6
|
||||
|
||||
Por si os sirve de consuelo, yo llevo más de un año con AS (si, desde las primeras alphas, asi de loco estoy
![]() ![]() ![]() Esperemos que Google adopte nuevas versiones del plugin de Groovy en proximas releases de AS! En mi opinión, AS tiene una mejor gestión de proyectos. Eclipse trabaja con un workspace con todos tus proyectos. Android Studio trabaja con proyectos, formados por modulos. Cuando trabajas en un proyecto, ves sus modulos, pero nada de otros trabajos que hayas hecho (solo te centras en lo importante). Cada proyecto tiene su build.gradle y su settings.gradle. Lo que pongas en el build.gradle de proyecto se aplicará a todos los build.gradle de cada módulo. Y dentor del build.gradle de cada módulo puedes definir sus dependencias Código:
compile 'groupid:libreria:version' Código:
compile project(':modulo_local') Migrar un proyecto de Eclipse a AS puede ser un dolor de cabeza, pero la forma más facil, en mi opinión, es crear un nuevo proyecto en AS, observar su estructura (proyecto -> modulo), y tratar de adaptarla en el proyecto ya existente (si necesitáis un cable, preguntad ![]()
__________________
Última edición por Dexafree Día 19/02/15 a las 17:18:17. |
Gracias de parte de: | ||
#7
|
||||
|
||||
Gracias por los aportes
![]() Sobre los errores en rojo, me los muestra pero solo en la clase que esté editando. Si toco algo en esa clase que afecte a otras, las otras no se marcan y solo descubro el error al compilar y verlo en la ventanita de mensajes. Ya me quedaré en Android Studio, me falta importar solo un proyecto ya y el gradle es muy flexible (y muy tiquismiquis también...)
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
|
Gracias de parte de: | ||
#8
|
||||
|
||||
@mocelet
Yo soy novato en java y siempre que hice mis cosas las hice en eclipse. Pero tuve varios intentos de pasarme a android studio y siempre mi problema fue con las librerias. siempre que quise importar algo, era problema. Lo abandoné unas 5 o 6 veces y lo tenia instalado en mi pc. Luego un dia lo agarre y descubrí como se importaban realmente las cosas. Listo! desde ahí no lo solté nunca mas. Hoy tengo un proyecto con 134 clases y fragmentos y me llevo de lujo con el. No vuelvo mas a eclipse salvo que derepente android studio se vuelva loco ![]() Acostumbrate y verás. Agradezco a un tio que en otro post me dijo algo como esto y me animó a volver a intentarlo. Los errores tambien te los marca en rojo |
Gracias de parte de: | ||
#9
|
||||
|
||||
Una vez le coges el truco pasas a amarlo ![]() Bienvenido al club ![]()
__________________
|
Gracias de parte de: | ||
#10
|
||||
|
||||
Hola a todos,
he instalado el Android Studio, última versión para linux, instalé el Java SDK 8 pero cuando creo un nuevo proyecto me pone en rojo que no puede resolver a una variable las R como en esta línea: setContentView(R.layout.activity_main); aclaro que lo hace con los proyectos nuevos, voy a NEW android proyect sigo el asistente y el código inicial lo crea solo el Android Studio y ya dice que tiene errores sin que yo toque nada. |
#11
|
||||
|
||||
Eso suele ser porque la compilación no termina.
Al compilar, en la consola de gradle debería aparecer algún mensaje de error (indicarte si hay algún problema en algún XML, por ejemplo) Te recomiendo que abras un hilo nuevo con algo más de información para intentar tratarlo de forma separada ![]()
__________________
|
#12
|
||||
|
||||
Gradle en realidad es muy flexible y potente. Puedes hasta ejecutar tareas en tiempo de compilacion (hay incluso tareas para subir una compilacion a Maven Central directamente desde el IDE, solo tocando el build.gradle. Es bestial!)
Una vez le coges el truco pasas a amarlo ![]() Bienvenido al club ![]() ![]() ![]() El editor en general lo veo más robusto, y me encantan los detallitos como que al tratar con imágenes te ponga la miniatura al lado de la línea de código que la usa. Errores de esos raros de ahora me quedo tonto no me ha vuelto a dar, tal vez lo habrán corregido en alguna actualización.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
|
Gracias de parte de: | ||
![]() |
![]() |
||||||
|