Estoy tratando de usar el nuevo Android Studio pero parece que no puedo hacerlo funcionar 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 una actividad principal . Copiado GSON-2.2.3.jar en el / libs carpeta y añaden como una dependencia de la biblioteca (click-derecho> Agregar como biblioteca). Esto incluye el jar en el estudio de Android para que pueda ser referenciado 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 cuando ejecuto la aplicación obtengo un ClassDefNotFoundException
.
¿Alguien sabe lo que estoy haciendo mal?
Respuestas:
He estado luchando con lo mismo durante muchas horas, intentando que el tarro Gson no funcione menos. Finalmente lo descifré, aquí están los pasos que tomé:
gson-2.2.4.jar
) en lalibs
carpetaAsegú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 asegurarse de que navegué en un 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 sistemaDespués de hacer los cuatro anteriores, comenzó a funcionar bien. Creo que el paso 'Agregar como biblioteca' fue el que me había perdido anteriormente, y tampoco funcionó hasta que lo limpié.
[Editar - agregó el
build.gradle
paso que también es necesario como otros han señalado]fuente
compile fileTree(dir: 'libs', include: '*.jar')
repositories { mavenCentral() }
y reemplace sucompile files(...)
línea concompile 'com.google.code.gson:gson:2.2.4'
y gradle descargará y administrará automáticamente el archivo jar por usted. Esto le permite a SCM rastrear solo archivos de código fuente y no bibliotecas.build.gradle
: compilar fileTree (dir: 'libs', incluir: ['* .jar'])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
agregar lo siguiente para que su cierre de dependencias tenga: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).Ejecutar
./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 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
+
signo sobre el panel segundo desde la izquierda ->Java
4.4. Seleccione su jar local y agréguelo al proyecto.
Es posible que deba ejecutar el
./gradlew
comando anterior una vez másfuente
En el proyecto haz clic derecho
Siga las capturas de pantalla a continuación:
1:
2:
3:
Verás esto:
fuente
En Android Stuido, me gusta usar Gradle para administrar Gson lib.
Agregue la dependencia a continuación en su archivo build.gradle.
Todo está bien.
También puedes ver esta publicación. La mejor manera de integrar la biblioteca de terceros en el estudio de Android
fuente
IIRC, simplemente usando "Agregar como biblioteca" no es suficiente para que se compile con el proyecto.
Consulte la ayuda de Intellij sobre cómo agregar bibliotecas a un proyecto
La parte que más le interesará es esta:
Si la biblioteca no aparece en el cuadro de diálogo, agréguela en la configuración de Bibliotecas, justo debajo de Módulos.
No debería necesitar agregar
compile files()
más, y la biblioteca debería agregarse correctamente a su proyecto.fuente
Todas estas soluciones están desactualizadas. Es realmente fácil ahora en Android Studio:
Archivo> Nuevo módulo ...
La siguiente pantalla se ve extraña, como si estuviera seleccionando algún widget o algo, pero manténgalo en la primera imagen y debajo del desplazamiento y busque "Importar paquete JAR o .AAR"
Luego tome
Project Structure
del menú Archivo. Seleccioneapp
de la ventana abierta, luego seleccionedependencies
, luego presionegreen plus button
, seleccione ymodule dependency
luego seleccione el módulo que importó, luego presioneOK
fuente
fuente
'compilar archivos ...' solía funcionar para mí, pero ya no. después de mucho dolor, descubrí que usar esto en su lugar funciona:
compile fileTree(dir: 'libs', include: '*.jar')
No tengo idea de por qué eso marcó la diferencia, pero, al menos, la maldita cosa está funcionando ahora.
fuente
Eso resolvió mi problema. Intenta, si alguien quiere más detalles, házmelo saber.
fuente
Lo hice funcionar simplemente agregando una línea a
build.gradle
:No olvides hacer clic
Sync now
en la esquina superior derecha.Estoy usando Android Studio 1.0.1.
fuente
fileTree
línea?Encontré a Dependency Manager de Android Studio bastante útil y poderoso para administrar dependencias de terceros (como gson mencionado aquí). Proporcionar una guía paso a paso que funcionó para mí (NOTA: Estos pasos se prueban para Android Studio 1.6 y versiones posteriores en la plataforma Windows).
Paso 1: Ir a "Construir> Editar bibliotecas y dependencias ..." abriría el cuadro de diálogo "Estructura del proyecto"
Paso 2: Seleccione "aplicación" y luego seleccione la pestaña "Dependencias". Luego seleccione "Agregar> 1 dependencia de biblioteca"
Paso 3: se mostrará el cuadro de diálogo "Elegir dependencia de biblioteca", especifique "gson" en la búsqueda y presione el "botón de búsqueda"
Paso 4: la dependencia deseada se mostraría en la lista de búsqueda, seleccione com.google.code.gson: gson: 2.7 (esta es la última versión en el momento en que escribí la respuesta), presione OK
Presione OK en el cuadro de diálogo "Estructura del proyecto". Gradle actualizaría sus scripts de compilación en consecuencia.
Espero que esto ayude :)
fuente
Android Studio 2.3.3
Después de hacer los tres anteriores, comenzó a funcionar bien.
fuente
Descargue y copie su
.jar
archivo en lalibs
carpeta y luego agregue estas líneas a build.gradle:No olvides hacer clic en "Sincronizar ahora"
fuente
Puedes hacer esto con dos opciones.
primera forma simple
Copie el archivo .jar en el portapapeles y luego agréguelo a la carpeta libs. Para ver la carpeta libs en el proyecto, elija el proyecto desde el cuadro combinado arriba de las carpetas.
luego haga clic derecho en el archivo .jar y haga clic en agregar como biblioteca, luego elija un módulo y luego ok. Puede ver el archivo .jar en el archivo build.gradle dentro del bloque de dependencias.
La segunda forma es eso: podemos agregar un archivo .jar a un módulo importando este archivo .jar como módulo .jar y luego agregar este módulo a cualquier módulo que queramos.
módulo de importación ---> elija su archivo .jar -> que importar como .jar -
Luego, CTRL + ALT + MAYÚS + S -> proyecto sturure -> elija el módulo que desea para agregar un jar -> Dependencendies -> Module Dependency. build.gradle del módulo se actualizará automáticamente.
fuente
He hecho más de 3 pasos y su encanto de trabajo para mí.
(Estoy usando Android Studio 2.1.2)
Paso 1
compile 'com.squareup.okhttp3:okhttp:3.3.1'
) en el script de construcción de gradle en build.gradle (Módulo: aplicación) .Paso 2: haga clic derecho en la carpeta de la aplicación -> Nuevo -> Módulo
Paso 3: haga clic en Importar paquete JAR / .AAR Luego busque su paquete. como ejemplo: OkHttp.jar
fuente
Con Android Studio 3+:
Debería poder simplemente copiar el archivo jar a la carpeta libs justo debajo de la carpeta de la aplicación.
... myproject \ app \ libs \ myfile.jar
Luego seleccione Archivos de proyecto en el menú desplegable de la ventana Proyectos, haga clic con el botón derecho en el proyecto, seleccione Sincronizar para ver el archivo en Archivos de proyecto. Agregará automáticamente las dependencias en el archivo gradle (Módulo: aplicación).
Aquí hay otra solución:
Vaya a la vista Archivos de proyecto (seleccione Archivos de proyecto en el menú desplegable).
Seleccione Nuevo ... Directorio, cree una carpeta llamada libs justo debajo de la aplicación.
Abra el Explorador de archivos, copie y pegue su archivo jar en la carpeta libs.
En Android Studio, haga clic derecho en el archivo jar y seleccione Agregar como biblioteca ... en el menú emergente.
Debería ver el archivo listado en la lista de dependencias en el archivo gradle:
Abra su archivo java y agregue la declaración de importación allí:
fuente
Ponga los
.jar
archivos en lalibs
carpeta del proyecto de Android.Luego agregue esta línea de código en el archivo gradle de la aplicación:
Para Android Gradle Plugin 3.0 y posterior, es mejor usar esto en su lugar:
fuente
A diferencia de Eclipse, no necesitamos descargar jar y ponerlo en la carpeta / libs. Gradle maneja estas cosas, solo necesitamos agregar dependencias de Gradle, Gradle lo descarga y lo coloca en el caché de Gradle.
Necesitamos agregar dependencias como:
dependencias {implementación 'com.google.code.gson: gson: 2.2.4'}
Sin embargo, también podemos descargar jar y agregarlo como biblioteca, pero la mejor práctica es agregar dependencias de Gradle.
fuente
fuente
Paso 1: Ahora debajo de tu
app folder
deberías verlibs
, si no lo ves, entonces créalo .Paso 2:
Drag & Drop the .jar file here
puede recibir un mensaje"This file does not belong to the project"
, simplemente haga clic en elOK
botón.Paso 3: Ahora debería ver el archivo jar en la carpeta libs , haga clic derecho en el archivo jar y seleccione
"Add as library", Click OK for prompt "Create Library"
Paso 4: ahora se ha agregado este frasco .
fuente
Crea una carpeta libs. Agrega tu archivo .jar. Haga clic derecho sobre él y encontrará agregar jar como dependencia. Haz click en eso. Es todo lo que necesitas hacer. Puede encontrar las dependencias agregadas a su archivo build.gradle.
fuente
1) cree una carpeta 'your_libs' dentro de la carpeta Project / app / src.
2) Copie su archivo jar en esta carpeta 'your_libs'
3) En Android Studio, vaya a Archivo -> Estructura del proyecto -> Dependencias -> Agregar -> Dependencia de archivos y navegue a su archivo jar, que debe estar debajo de 'src / your_libs'
3) Seleccione su archivo jar y haga clic en 'Aceptar'
y luego puede ver en su build.gradle así: compile archivos ('src / your_libs / your.jar')
fuente
En Android Studio 1.1.0. Resolví esta pregunta siguiendo los pasos:
1: Coloque el archivo jar en el directorio libs. (en Finder)
2: Abra la configuración del módulo, vaya a Dependencias, en la esquina inferior izquierda hay un botón más. Haga clic en el botón más y luego elija "Dependencia de archivo". Aquí puede ver su archivo jar. Selecciónelo y se resuelve.
fuente
¡He leído todas las respuestas aquí y todas parecen cubrir versiones antiguas de Android Studio!
Con un proyecto creado con Android Studio 2.2.3, solo necesitaba crear un
libs
directorioapp
y colocar mi jar allí. Lo hice con mi administrador de archivos, no es necesario hacer clic o editar nada en Android Studio.Por que funciona Abra Construir / Editar bibliotecas y dependencias y verá:
fuente
En Mac OS X:
Agregue jar como biblioteca (arrastre jar a libs, haga clic con el botón derecho en agregar como lib)
Agregar declaración de compilación a
build.grade
Instalar
gradle v1.6
(usar homebrew)Gradle Clean (reconstruir Android no funcionó)
Esto me solucionó.
fuente
Como muchos antes señalaron, agregará
a su archivo build.gradle.
Sin embargo, tengo un proyecto en Android Studio que se migró de Eclipse y, en este caso, la carpeta "libs" se llama "lib", por lo que eliminar la "s" resolvió el problema.
fuente
libs
carpeta a nivel deapp
.jars
en este proyecto.libs
carpeta,add library
Observé que CTRL+ ALT+ SHIFT+ S-> estructura del proyecto -> módulo de aplicación -> Dependencias "ya tenía una entrada como
(dir: 'libs', include: '*.jar')
debajocompile-option
, inicialmente. Y después de agregar los jar según los pasos indicados anteriormente,build.gradle
obtuve las entradas para el nuevo agregado jarra en sí.fuente
En Android Studio 2.1 sigo el siguiente camino,
Ir a la aplicación -> src-> principal -> carpeta de activos (si no está disponible, créelo ) -> coloque sus archivos JAR
En su build.gradle agregue dependencia como esta,
Sincronizar ahora. Ahora sus archivos JAR están listos para usar.
fuente
Para la versión más reciente de Android 1.0.2, lo siguiente ya está allí en su archivo build.gradle
Agregue el tarro de la biblioteca a su carpeta libs -> haga clic con el botón derecho en la biblioteca -> haga clic en agregar como biblioteca -> le pide el proyecto para agregarlo -> seleccione su proyecto -> haga clic en Aceptar La siguiente línea se agrega automáticamente para compilar .gradle
Eso lo hizo por mí. No se requería nada más. He mostrado esto para Android Aquery otra biblioteca de terceros para Android.
fuente
Mi respuesta es básicamente reunir algunas de las respuestas correctas pero incompletas proporcionadas anteriormente.
Agregue lo siguiente:
Esto permitirá la compatibilidad con dos formas diferentes de agregar dependencias. El
compile fileTree(dir: 'libs', include: ['*.jar'])
(como mencionó @Binod) le dice al compilador que busque debajo de la carpeta libs CUALQUIER jar. Es una buena práctica crear una carpeta 'libs' que contenga los paquetes jar que nuestra aplicación necesita usar.Pero esto también permitirá el soporte para la dependencia de Maven. La compilación
'com.google.code.gson:gson:2.3'
(como lo menciona @saneryee) es otra forma recomendada de agregar dependencias que están en un repositorio remoto central y no en nuestro "repositorio local" / libs. Básicamente le dice a Gradle que busque esa versión de ese paquete y le dice al compilador que lo tenga en cuenta al compilar el proyecto (tenerlo en el classpath)PD: yo uso ambos
fuente