Android Studio: ¿Añadir un jar como biblioteca?

Estoy intentando utilizar el nuevo Android Studio pero no consigo que funcione correctamente.

Estoy usando la librería Gson para serializar/deserializar objetos JSON. Pero la librería no está incluida en la compilación.

He creado un nuevo proyecto con sólo un MainActivity. Copié gson-2.2.3.jar en la carpeta /libs y lo añadí como dependencia de la biblioteca (click derecho->Añadir como biblioteca). Esto incluye el jar en android studio para que pueda ser referenciado desde los archivos fuente.

Cuando intento ejecutar el proyecto no puede compilar así que añadí:

compile files('libs/gson-2.2.3.jar')

a las dependencias en el archivo .gradle. Después de eso se compila correctamente, pero cuando se ejecuta la aplicación me sale una ClassDefNotFoundException.

¿Alguien sabe qué estoy haciendo mal?

Solución

He estado luchando con lo mismo durante muchas horas, tratando de hacer funcionar el tarro de Gson nada menos. Por fin lo he conseguido - aquí están los pasos que he dado:

  1. Poner el jar de Gson (en mi caso, gson-2.2.4.jar) en la carpeta `libs

  2. Haz clic con el botón derecho del ratón y pulsa "Añadir como biblioteca".

  3. Asegúrate de que compile files('libs/gson-2.2.4.jar') está en tu archivo build.gradle (o compile fileTree(dir: 'libs', include: '*.jar') si estás usando muchos archivos jar)

    Editar : Usar implementation files('libs/gson-2.2.4.jar') (o implementation fileTree(dir: 'libs', include: '*.jar')) en Android Studio 3.0+

  4. Haz una compilación limpia (probablemente puedas hacer esto bien en Android Studio, pero para asegurarme he navegado en un terminal hasta la carpeta raíz de mi aplicación y he escrito gradlew clean. Estoy en Mac OS X, el comando puede ser diferente en su sistema

Después de hacer las cuatro cosas anteriores, empezó a funcionar bien. Creo que el paso de "Añadir como biblioteca" fue el que se me pasó por alto, y tampoco funcionó hasta que lo limpié.

[Editar - añadí el paso build.gradle que también es necesario como otros han señalado]

Comentarios (20)

Según tengo entendido, no basta con usar "Añadir como biblioteca" para que compile con el proyecto.

Consulta la ayuda de Intellij sobre cómo añadir bibliotecas a un proyecto

La parte que más te debería interesar es esta:

(En Archivo > Estructura del proyecto) Abre la configuración del módulo y selecciona la pestaña Dependencias.

En la pestaña de Dependencias, haz clic en añadir y selecciona Biblioteca.

En el cuadro de diálogo Elegir Bibliotecas, seleccione una o más bibliotecas y haga clic en Añadir Seleccionadas.

Si la biblioteca no aparece en el diálogo, añádela en la configuración de Bibliotecas, justo debajo de Módulos.

Ya no debería necesitar añadir compilar archivos(), y la biblioteca debería añadirse correctamente a su proyecto.

Comentarios (4)

En Mac OS X:

  1. Añada el jar como biblioteca (arrastre el jar a las librerías, haga clic con el botón derecho en añadir como lib)

  2. Añade la sentencia de compilación a build.grade.

  3. Instala gradle v1.6 (usa homebrew)

  • brew install gradle
  • gradle -v
  • si no es v1.6, actualiza homebrew
  1. gradle clean (rebuild android no funcionó)

Esto me solucionó.

Comentarios (0)