Android Studio: ¿Agregar jar como biblioteca?
Estoy intentando utilizar el nuevo Android Studio pero parece que no consigo que funcione correctamente.
Estoy usando la biblioteca Gson para serializar/deserializar objetos JSON. Pero la biblioteca de alguna manera no está incluida en la compilación.
Había creado un nuevo proyecto con solo MainActivity . Copié gson-2.2.3.jar en la carpeta /libs y lo agregué como una dependencia de la biblioteca (clic derecho->Agregar como biblioteca). Esto incluye el jar en Android Studio para que se pueda hacer referencia a él desde los archivos fuente.
Cuando intento ejecutar el proyecto, no se puede compilar, así que agregué:
compile files('libs/gson-2.2.3.jar')
a las dependencias en el archivo .gradle. Después de eso se compila correctamente pero al ejecutar la aplicación aparece un archivo ClassDefNotFoundException
.
¿Alguien sabe qué estoy haciendo mal?
Llevo muchas horas luchando con lo mismo, intentando que el tarro Gson funcione nada menos. Finalmente lo descifré; estos son los pasos que tomé:
- Coloque el frasco Gson (en mi caso
gson-2.2.4.jar
) en lalibs
carpeta - Haga clic derecho y presione 'Agregar como biblioteca'
Asegúrese de que
compile files('libs/gson-2.2.4.jar')
esté en subuild.gradle
archivo (ocompile fileTree(dir: 'libs', include: '*.jar')
si está utilizando muchos archivos jar)Editar: usar
implementation files('libs/gson-2.2.4.jar')
(oimplementation fileTree(dir: 'libs', include: '*.jar')
) en Android Studio 3.0+Realice una compilación limpia (probablemente pueda hacerlo bien en Android Studio, pero para asegurarme de que navegué en una terminal a la carpeta raíz de mi aplicación y escribí
gradlew clean
. Estoy en Mac OS X, el comando puede ser diferente en su sistema
Después de hacer los cuatro anteriores, empezó a funcionar bien. Creo que el paso "Agregar como biblioteca" fue el que me había saltado anteriormente y tampoco funcionó hasta que lo limpié.
[Editar: se agregó el build.gradle
paso que también es necesario como otros han señalado]
Estas son las instrucciones para agregar un archivo jar local como biblioteca a un módulo:
Cree una carpeta 'libs' en el nivel superior del directorio del módulo (el mismo directorio que contiene el directorio 'src')
En el
build.gradle file
agregue lo siguiente para que el cierre de sus dependencias tenga:dependencies { // ... other dependencies compile files('libs/<your jar's name here>') }
Android Studio ya debería haber configurado un contenedor gradlew. Desde la línea de comando, navegue hasta el nivel superior de su proyecto (el directorio que tiene un
gradlew
archivo).Correr
./gradlew assemble
. Esto debería compilar el proyecto con la biblioteca. Es posible que deba corregir errores en su archivo build.gradle según sea necesario.Para que Android Studio reconozca los archivos jar locales como bibliotecas para brindar soporte mientras codifica en el IDE, debe seguir algunos pasos más:
4.1. Haga clic derecho en el módulo en el panel izquierdo y elija
Open Library Settings
.4.2. En el panel izquierdo del cuadro de diálogo, elija
Libraries
.4.3. Haga clic en el
+
letrero encima del panel, segundo desde la izquierda ->Java
4.4. Seleccione su frasco local y agréguelo al proyecto.
Es posible que necesites ejecutar el
./gradlew
comando anterior una vez más.
En el proyecto haga clic derecho
-> new -> module
-> import jar/AAR package
-> import select the jar file to import
-> click ok -> done
Siga las capturas de pantalla a continuación:
1:
2:
3:
Verás esto: