Eclipse ADT y Android Studio: incluir dependencias y librerías

GitHub

En la mayoría de aplicaciones Android y en los tutoriales del blog haremos uso de librerías de terceros, especialmente de las librerías de compatibilidad de Google. En este artículo veremos cómo hacerlo tanto en Eclipse ADT como en Android Studio.

Versiones utilizadas
  • Eclipse Luna 4.4.2 + ADT 23
  • Android Studio 1.3

Librerías disponibles en .jar

Eclipse ADT

Simplemente incluímos el .jar (y las dependencias del mismo si fuera necesario) en el directorio /libs de la raíz del proyecto. Eclipse ya se encarga de incluir las librerias en el classpath del proyecto.

eclipse ADT libs

Nota: si no podemos descargar directamente el .jar pero nos indican el artefacto para Gradle y\o Maven, en mvnrepository se puede buscar y descargar cualquier librería publicada en los repositorios oficiales de Maven.

Android Studio

Contamos con la herramienta de gestión y construcción de proyectos Gradle ya integrada y sólo tendremos que añadir la dependencia en el fichero /app/build.gradle dentro del bloque denominado dependencies:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.jakewharton:butterknife:7.0.0'
    compile 'com.android.support:appcompat-v7:22.2.1'
    compile 'com.android.support:design:22.2.1'
}

Al modificarse las dependencias, Android Studio preguntará si queremos actualizar el proyecto con los últimos cambios mediante un banner de color amarillo tal y como muestra la siguiente captura. Esta tarea se puede realizar en cualquier momento pulsando el botón marcado en rojo.

android studio sync gradle

Si tenemos que incluir directamente un jar sin utilizar Gradle procedemos del mismo modo que en Eclipse ADT: añadiendo el .jar al directorio /app/libs/. Adicionalmente tendremos que actualizar el proyecto con la configuración de Gradle mediante el botón indicado en la captura anterior.

Librerías con código fuente y/o recursos

Eclipse ADT

Nos vamos a File->Import y seleccionamos:

  • Si la librería tiene estructura de proyecto Android, es el caso por ejemplo de android-support-v7-appcompat, seleccionamos Android->Existing Android Code into Workspace.
    Una vez importado el proyecto en Eclipse, para incluir este proyecto como dependencia de cualquier proyecto Android, abrimos las propiedades del proyecto y nos vamos a la sección Android. Desde ahí, en “Library” se añade el proyecto.
    Android Library

  • La librería no es un proyecto Android sino un proyecto genérico Java
    • Si el proyecto se basa en Maven, la opción es Maven->Existing Maven Projects
    • Si el proyecto se basa en Gradle, la opción es Gradle->Gradle Project . Muy probablemente no tendremos esta opción por lo que primero instalaremos el plugin de Gradle (Buildship Gradle Integration) buscándolo en Help->Eclipse Markeplace… y reiniciando Eclipse tras la instalación.
    • Una vez importada seguimos estos dos pasos:

    • Para añadir la librería a cualquier proyecto abrimos las propiedades del proyecto y en la sección Java Build Path, pestaña Projects, añadimos el proyecto que hemos generado a partir del código de la librería.

      eclipse java build path

    • Ahora ya podemos utilizar la librería pero nos queda un último paso: hacer que la librería se incluya en el apk. Para ello, nos vamos nuevamente a Java Build Path en las propiedades del proyecto y en las pestaña Order And Export marcamos el proyecto que añadimos en el paso anterior.
      android eclipse export

Siempre que añadimos una nueva dependencia de una librería que es un proyecto conviene hacer Project->Clean para asegurar que todos los cambios se aplican correctamente.

Android Studio

  • Proyecto Gradle: lo incluimos como un módulo en el proyecto modificando directamente los ficheros de Gradle (el asistente visual me ha dado problemas en más de una ocasión y en este caso es prescindible) de tal modo que :

    1. En el fichero settings.gradle se importa el proyecto indicando la ruta física (completa o relativa) al directorio raiz del proyecto

      include ':volley'
      project(':volley').projectDir = new File('/home/dani/Desktop/volley')
    2. Se añade este módulo como una dependencia en el /app/build.gradle
      dependencies {
          compile fileTree(dir: 'libs', include: ['*.jar'])
          compile 'com.android.support:appcompat-v7:22.2.1'
          compile project(':volley')
      }
    3. Como ya vimos en la sección anterior sincronizamos los ficheros de Gradle con el proyecto. El módulo debería aparecer en la vista Project->Android

      android studio module volley
      Obsérvese que con este procedimiento el proyecto con la librería permanece físicamente en su ubicación original por lo que no forma parte de la estructura del proyecto Gradle de nuestra app. Esto permite reutilizar la librería de forma común para cualquier proyecto.

  • Proyecto Eclipse ADT: este tipo de proyectos puede convertirse en un proyecto Android Studio/Gradle utilizando un asistente. El proyecto “adaptado” es una copia del original que se ubica físicamente dentro de nuestro proyecto de Android Studio.
    1. Sobre el módulo app desplegamos el menú contextual y seleccionamos New->Module
    2. En la pantalla que se abre, seleccionar “Import Eclipse ADT project”
    3. Indicamos el directorio raiz que contiene el proyecto “librería”. Se nos mostrarán las módulos del mismo que se importarán y los que no porque ya los tenemos en el proyecto.

      import eclipse ADT android studio

    4. En la siguiente pantalla dejamos marcadas todas las opciones de importación para que Android Studio intente resolver de forma automática la configuración de Gradle que se generará.
    5. Si el proyecto que importamos tiene a su vez dependencias con otras librerías definidas en el Eclipse, se solicitará la ubicación del workspace de Eclipse para poder importar también dichos módulos

    Aunque Android Studio suele hacer un buen trabajo con estas importaciones de proyectos de Eclipse ADT, es posible que tengamos que revisar los ficheros de Gradle generados para configurar o añadir alguna dependencia en particular

  • Proyecto Maven: pese a que con Android Studio podemos importar y utilizar proyectos Maven, para utilizarlos como módulos de los proyectos Android tendremos que convertirlos en un proyecto Gradle e importarlo como tal. Se puede realizar esta conversión mediante el comando gradle init (tendremos que tener Gradle instalado en nuestro sistema y accesible en el PATH). De los ficheros generados, borraremos el settings.gradle para evitar problemas en la importación.

    gradle.init

One Response to Eclipse ADT y Android Studio: incluir dependencias y librerías

  1. Rodolfo dice:

    Excelente material, me ayudo mucho gracias por el aporte, puedo recomendar este curso de android http://www.grupocodesi.com/cursos/curso-de-android.html bastante bueno

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: