26 mayo 2013

Android Studio no arranca en Windows

Ya iba siendo hora de probar el recién lanzado Android Studio ("early access preview"), de Google, que se puede descargar desde:

http://developer.android.com/sdk/installing/studio.html

Lo hice hace cerca de una semana, se instaló sin problemas pero no arrancó. Hoy me he tomado el tiempo de reinstalar y mirar con más detenimiento... y sí, estaba correctamente instalado, y no funcionaba por un problema de configuración que el instalador (para Windows) no soluciona:

Es necesario añadir una variable llamada JDK_HOME al PATH de nuestro sistema.

Hay quien habla de que también sirve si se llama "ANDROID_STUDIO_JDK" o "JAVA_HOME", pero yo voy a incluir los pasos que me han servido a mí, bajo Windows 8.

Para cambiar esa variable tenemos que llegar hasta el apartado "Sistema" de nuestro Panel de Control. Se puede conseguir entrando al Panel de Control, luego al apartado "Sistema y Seguridad" y luego a "Sistema". En la columna del lado izquierdo debería aparecer la opción "Configuración avanzada del sistema", que despliega una nueva ventana, en cuya parte inferior hay un botón "Variables de entorno...".



La parte superior mostrará la leyenda "Variables de usuario para XXX" (donde XXX será nuestro nombre de usuario). Si pulsamos el botón "Nueva...", aparecerán dos casillas, en las que podremos añadir la variable de entorno y su valor.

En este caso, escribiríamos JDK_HOME en la casilla superior, y en la inferior pondríamos la carpeta en la que se encuentra nuestro JDK de Java, que puede ser algo como

C:\Program Files (x86)\Java\jdk1.6.0_39

o como

C:\Program Files\Java\jdk1.7.0_21

Entonces, ya podremos entrar a Android Studio, pero puede que al elegir "New Project" nos avise de que sea necesario actualizar nuestro Android SDK, si tenemos una versión inferior a la 22 (en mi caso, tenía la 21).



Basta abrir el "SDK Manager" para que detecte las actualizaciones y nos ofrezca instalarlas. Si el mensaje persiste, hay que hacer caso a la segunda mitad de lo que nos avisa: quizá nos falten plantillas ("is missing templates"). El problema también puede deberse, como en mi caso, a que no haya detectado correctamente la carpeta en la que está el SDK. Se lo podemos indicar a Android Studio si entramos a:

Configure, Project Defaults, Project Structure, Project


En mi equipo, el SDK no estaba en la carpeta en la que el instalador esperaba, porque no lo instalé para todos los usuarios. En cuanto le indiqué la ruta correcta (pulsando el botón "..." que hay tras "Android SDK home path"), las cosas empezaron a funcionar:




10 mayo 2013

MonoGame no funciona... aún

XNA era una biblioteca desarrollada por Microsoft para permitir la creación de juegos para Windows e incluso para XBox, como alternativa sencilla (y limitada) a DirectX.

Pero la dejaron morir. Shawn Hargreave, el creador de la biblioteca Allegro y que fue contratado por Microsoft como "alma madre" de XNA, lleva tiempo orientado a otras cosas (como Windows Phone 8); Nick Gravelyn, que también posteaba con frecuencia sobre la plataforma, lleva más de dos años sin publicar nada en su blog; el propio blog del "equipo de desarrollo de XNA" ha publicado apenas cuatro posts en más de medio año, y no hablan sobre XNA sino sobre otras tecnologías auxiliares o... ¿sustitutivas? como MonoGame.

Así que iba siendo el momento de probar ese tal MonoGame, que se supone que es una nueva plataforma open source, que trata de ser compatible con XNA, pero permitiendo la portabilidad a Linux, Android, Mac e iOS con una cierta facilidad, además de la plataforma Windows original.

Y el resultado no ha sido bueno. Sobre una máquina virtual de Windows XP, con Visual Studio 2010 Express (que se supone que es el único prerrequisito para desarrollar para Windows), he probado a instalar la última versión de MonoGame para Windows, la 3.0.1, de marzo de 2013. La instalación ha sido rápida y sin problemas aparentes, he podido entrar a Visual Studio y ver que me ofrecía la posibilidad de crear proyectos de MonoGame.


Primer jarro de agua fría: a pesar de estar en Windows, se me ofrece crear proyectos para Linux, pero no para Android, a pesar de que esa máquina virtual tiene instalado el Android SDK y otras herramientas auxiliares, como Eclipse, y la he utilizado para crear alguna aplicación Android con anterioridad.

Veo que los proyectos para Windows no se basan en DirectX (a pesar de que SharpDX es parte de la distribución), sino en OpenGL. Razonable, si se busca portabilidad, pero peligroso...

Y efectivamente: creo un proyecto vacío para Windows, lo lanzo y aparece un primer error que dice que no encuentra "openal32.dll". Busco en los foros de MonoGame y me llevan a una descarga ( http://monogame.codeplex.com/discussions/357014 ) que soluciona este primer problema. Vuelvo a lanzar y ahora es "OpenGL32.dll" el que no tiene cierto punto de entrada que el proyecto espera ("No se puede encontrar el punto de entrada denominado 'glBindFramebuffer' en el archivo DLL 'opengl32.dll'."). Esta DLL es de 2008, así que busco una versión más moderna, tomada de un Windows 7... mismo error. Busco otra aún más moderna, tomada de un Windows 8, y me dice que "esa DLL no es una imagen válida de Windows". Quizá sea una DLL de 64 bits y el XP de pruebas es de 32 bits. Llevo el ejecutable y las DLL al equipo que tiene Windows 8, lo lanzo con doble clic, y recibo un "el programa dejó de funcionar". Lo lanzo desde línea de comandos para ver los mensajes de error... y no hay mensajes de error.

Y el caso es que en la página de MonoGame se puede ver de gente que ha creado proyectos, incluso para Android e iOs, y que los ha subido a las correspondientes AppStores. Será desde Linux o desde Mac, porque lo que es desde Windows... o yo he pasado algo por alto, o el sistema todavía está muy poco pulido.

XNA era engorroso de instalar, y un juego con XNA no era especialmente fácil de llevar a terceras personas, por los redistribuibles que había que instalar con anterioridad, pero al menos se podía hacer funcionar. Con MonoGame no lo he conseguido. Si lo llego a lograr, lo contaré...