Como adicionar coleções comuns do Apache no Android Studio (Gradle)

98

Estou tentando usar ListUtils, mas quando executei o aplicativo, recebi este erro:

 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]]

Acho que preciso importar essa biblioteca via gradle de alguma forma, mas não sei como fazer isso?

JK
fonte
HttpClient já fazia parte do Android, mas obsoleto da API 23+: stackoverflow.com/a/32157466/1085264
straya

Respostas:

6

Coloque o arquivo jar na pasta libs na raiz do seu módulo. Em seguida, Arquivo -> Configurações do projeto. No lado esquerdo escolha o módulo onde deseja adicionar esta lib, no lado direito escolha a aba Dependências. Na parte inferior, pressione o sinal de adição e clique em Dependência de arquivo. Em seguida, escolha o seu jar e sincronize o projeto

Oleg Osipenko
fonte
6
Existe uma maneira de fazer isso colocando algum texto no Gradle e tendo que lidar com arquivos e módulos jar?
JK
@JK você quer dizer simplesmente soltar potes e não especificar cada frasco?
Oleg Osipenko de
3
Não, quero dizer, não descartar nenhum frasco, apenas dizer ao gradle em qual repo obtê-los
JK
4
Tente 'compilar' org.apache.commons: commons-Collections4: 4.0 '
Oleg Osipenko
1
ao pressionar o sinal de mais, outra opção é Dependência de biblioteca e há pesquisa - digite o nome e pesquise a biblioteca de seu interesse
Oleg Osipenko
420

Escolha os que você precisa e adicione-os ao build.gradlebloco de dependências de:

Recomendo verificar o link para ter certeza de que está obtendo a versão mais recente. Sinta-se à vontade para sugerir edições.

coleções : (link)

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

lang : (link)

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

comprimir : (link)

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

net : (link)

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

io : (link)

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

exec (link)

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

codec (link)

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

http (link)

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

validador (link)

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

matemática (link)

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

Veja todas as bibliotecas Apache aqui

Chad Bingham
fonte
1
e para lang org.apache.commons:commons-lang3:3.4,. fonte: mvnrepository.com/artifact/org.apache.commons/commons-lang3/3.4
Adam Johns
2
e para net, compile 'commons-net: commons-net: 3,3'
M. Usman Khan
@Chad Você poderia dizer em qual dependência FilenameUtilsestá?
Iqbal
3
@Iqbal está em IO:compile 'commons-io:commons-io:2.5'
Glorfindel
Por que as coleções não têm CircularFifoBuffer? Eu não consigo encontrar. O mesmo vale para BufferUtils
desenvolvedor Android