pctroll { jorge palacios }

desarrollador de juegos, programador, investigador de IA

Entorno de desarrollo Android en Ubuntu 13.04

Tienes Ubuntu, el desarrollo de Android te hace ojitos y entonces resulta que Google te mintió vilmente cuando citan “With a single download, the ADT Bundle includes everything you need to begin developing app”. Pues no, hay unos pasos adicionales para tener tu entorno de desarrollo listo.

Antes de salir corriendo a descargar el SDK desde el sitio oficial de Android, es necesario instalar los prerrequisitos para nuestro sistema y no llevarnos una torta en la cara cuando intentemos correr el editor (en este caso Eclipse) luego de creer de que todo lo que necesitas se encuentra en ese .tar.gz.

Prerrequisitos

Lo primero es agregar el repositorio con el Oracle(Sun) JDK 6 porque Ubuntu por defecto trae repositorio para el Open JDK, el cual no es oficialmente soportado aun cuando varios desarrolladores apegados al software libre manifiestan que han tenido pocos o ningún problema al momento de desarrollar sus aplicaciones.

sudo apt-add-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java6-installer

Si quieres ajustar de manera “automática” las variables de entorno para el JDK (que es recomendable), toca instalar este paquetico:

sudo apt-get install oracle-java6-set-default

Hay que instalar también el siguiente paquete porque contiene un archivo llamado libncurses.so.5  que es necesario para el SDK de Android.

sudo apt-get install ia32-libs

Android SDK

android_filesystemAhora sí descargamos el .tar.gz para Linux desde la página oficial y luego de extraer el directorio lo renombramos a algo un poco más amigable (por ejemplo adt-bundle-linux) de tal manera que va a quedarte un sistema de archivos como se aprecia en la imagen (click para ampliar). En mi caso la ruta del directorio quedó /home/usuario/software/adt-bundle-linux.

Siguiente, se instalan los SDK platform tools en caso de no tenerlos a través del Android SDK Manager. También es una buena oportunidad para instalar los APIs de las versiones de Android a la cual quieras apuntar (por defecto trae es el API más reciente). Es importante destacar que si tienes conexión lenta, el tiempo de descarga se puede demorar bastante y es directamente proporcional al número de APIs adicionales que vayas a instalar.

cd sdk/tools/
./android
android_sdk_manager

Android SDK Manager

Variables de entorno

Hay que agregar la ruta de los binarios a las variables de entorno del sistema mediante la modificación del archivo bashrc. Yo editaré con VIM, pero cualquier otro editor sirve.

vim ~/.bashrc

Al inicio del archivo se agregan las rutas de los binarios tomando en consideración la ruta del Android SDK (adt-bundle-linux). En mi caso lo instalé en el directorio /home/usuario/software/.

#AndroidDev PATH
export PATH=$PATH:~/software/adt-bundle-linux/sdk/tools
export PATH=$PATH:~/software/adt-bundle-linux/sdk/platform-tools

Hay que volver a cargar el bash con las nuevas variables de entorno con el siguiente comando:

source ~/.bashrc

Preparación del hardware

A través de los permisos de super usuario creamos un nuevo archivo para que el sistema sea capaz de detectar la conexión del dispositivo para desarrollo. Es importante agregar el código de los fabricantes de los dispositivos que se van a utilizar.

sudo vim /etc/udev/rules.d/51-android.rules

El archivo a continuación es un ejemplo, y en el sitio oficial están todos los códigos. La estructura es sencilla, se agregan todos los fabricantes con el permiso y las últimas dos líneas son obligatorias para todos los archivos.


SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666"

SUBSYSTEM=="usb", ATTRS{idVendor}=="0b05", MODE="0666"

SUBSYSTEM=="usb", ATTRS{idVendor}=="0502", MODE="0666"

SUBSYSTEM=="usb", ATTRS{idVendor}=="12d1", MODE="0666"

SUBSYSTEM=="usb", ATTRS{idVendor}=="1004", MODE="0666"

SUBSYSTEM=="usb", ATTRS{idVendor}=="22b8", MODE="0666"

SUBSYSTEM=="usb", ATTRS{idVendor}=="04e8", MODE="0666"

SUBSYSTEM=="usb", ATTRS{idVendor}=="0fce", MODE="0666"

<em id="__mceDel">
SUBSYSTEM=="usb", ATTRS{idVendor}=="0489", MODE="0666"</em>

<em id="__mceDel">
SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", SYMLINK+="android_adb", MODE="0666"</em>

<em id="__mceDel">
SUBSYSTEM=="usb", ATTRS{idVendor}=="04e8", MODE="0666", GROUP="plugdev"

</em><em id="__mceDel">

Es importante destacar que hay que habilitar las opciones de desarrollo para el dispositivo en el que vayamos a hacer las pruebas. Una vez ajustado esto, y conectado al computador, se ejecuta el siguiente comando para verificar que en efecto el dispositivo ha sido detectado y está listo para probar lo que estemos desarrollando.

adb devices

La respuesta debe ser similar a esta con la lista de dispositivos conectados y su permisología.

* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached

Cualquier inquietud, o si tuve un pelón en los pasos, tienen la sección de comentarios para comunicarnos.

Fuentes consultadas

7 Comentarios

  1. Muchas gracias por la información. Me ha servido de mucho. ¡Saludos!

  2. He leido atentamente tu articulo. Pero he tenido problemas cuando le doy la orden:
    sudo apt-get install ia32-libs
    me dice que no encuentra el paquete.
    Gràcias de antemano por el articulo.
    Cordialmente
    Mingo

  3. He probado
    sudo apt-get install package-name:i386
    No funciona, tengo el Ubuntu 13.04 y funciona a 64 bits. Voy a mirar la dirección que me das a ver si tengo suerte

  4. Buenas,
    Ante todo dar las gracias por este tuto que me ido tan bien. Yo tenia el mismo proble al instalar el ia32-libs. Al final lo he conseguido. Mirate este enlace: http://wiki.phoenixviewer.com/ia32-libs-in-ubuntu-13-10

  5. hice todo tal cual se indica, llego asta donde se crea la aplicacion de android desde eclipse y en el ultimo paso se queda atorado. que creen que pueda ser ??
    les agradesco mucho si hay una respueta

    • pctroll

      10 Febrero, 2014 at 8:43 pm

      Tengo tiempo sin revisar este tutorial porque he estado ocupado desarrollando directamente con Unity. Intentaré darle una revisión el fin de semana.

Deja un comentario