Cómo agregar colecciones de apache commons en Android Studio (Gradle)

98

Estoy tratando de usar ListUtils pero cuando ejecuté la aplicación recibí este error:

 Caused by: java.lang.ClassNotFoundException: Didn't find class "org.apache.commons.collections.ListUtils" on path: DexPathList[[zip file "/data/app/com.meridianaspect.wiw-2/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]

Así que supongo que tengo que importar esa biblioteca a través de Gradle de alguna manera, pero no sé cómo hacerlo.

JK
fuente
HttpClient ya era parte de Android pero obsoleto de API 23+: stackoverflow.com/a/32157466/1085264
straya

Respuestas:

6

Coloque el archivo jar en la carpeta libs en la raíz de su módulo. Luego Archivo -> Configuración del proyecto. En el lado izquierdo elija el módulo donde desea agregar esta biblioteca, en el lado derecho elija la pestaña Dependencias. En la parte inferior, presione el signo más y haga clic en Dependencia de archivos. Luego, elija su proyecto de jar y sincronización

Oleg Osipenko
fuente
6
¿Hay alguna manera de hacer esto simplemente colocando algo de texto en Gradle y teniendo que lidiar con archivos y módulos jar?
JK
@JK, ¿te refieres a simplemente soltar frascos y no especificar cada frasco?
Oleg Osipenko
3
No, me refiero a no dejar caer ningún frasco, solo decirle a Gradle de qué repositorio obtenerlos
JK
4
Intente 'compilar' org.apache.commons: commons-collections4: 4.0 '
Oleg Osipenko
1
al presionar el signo más, otra opción es Dependencia de la biblioteca y hay una búsqueda: escriba el nombre y busque la biblioteca que le interesa
Oleg Osipenko
420

Elija las que necesite y agréguelas al build.gradlebloque de dependencias:

Recomiendo consultar el enlace para asegurarse de que está obteniendo la última versión. No dude en sugerir ediciones.

colecciones : (enlace)

implementation 'org.apache.commons:commons-collections4:4.4'

lang : (enlace)

implementation 'org.apache.commons:commons-lang3:3.9'

comprimir : (enlace)

implementation 'org.apache.commons:commons-compress:1.19'

net : (enlace)

implementation 'commons-net:commons-net:3.6'

io : (enlace)

implementation 'commons-io:commons-io:2.6'

ejecutivo (enlace)

implementation 'org.apache.commons:commons-exec:1.3'

códec (enlace)

implementation 'commons-codec:commons-codec:1.13'

http (enlace)

implementation 'org.apache.httpcomponents:httpclient:4.5.10'

validador (enlace)

implementation 'commons-validator:commons-validator:1.6'

matemáticas (enlace)

implementation 'org.apache.commons:commons-math3:3.6.1'

Vea todas las bibliotecas de Apache aquí

Chad Bingham
fuente
1
y para lang, org.apache.commons:commons-lang3:3.4. fuente: mvnrepository.com/artifact/org.apache.commons/commons-lang3/3.4
Adam Johns
2
y para net, compile 'commons-net: commons-net: 3.3'
M. Usman Khan
@Chad ¿Podría decirnos en qué dependencia se FilenameUtilsencuentra?
Iqbal
3
@Iqbal está en IO:compile 'commons-io:commons-io:2.5'
Glorfindel
¿Por qué las colecciones no tienen CircularFifoBuffer? No lo encuentro. Lo mismo ocurre con BufferUtils
desarrollador de Android