Come aggiungere raccolte di apache commons in Android Studio (Gradle)


98

Sto cercando di utilizzare ListUtils ma quando ho eseguito l'app ho ricevuto questo errore:

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

Quindi immagino di dover importare quella libreria in qualche modo tramite Gradle, ma non so come farlo?


HttpClient era già parte di Android, ma obsoleto da API 23+: stackoverflow.com/a/32157466/1085264
straya

Risposte:


6

Metti il ​​file jar nella cartella libs nella root del tuo modulo. Quindi File -> Impostazioni progetto. Nella parte sinistra scegli il modulo in cui vuoi aggiungere questa libreria, nella parte destra scegli la scheda Dipendenze. In basso, premi il segno più e fai clic su Dipendenza file. Quindi scegli il tuo jar e sincronizza il progetto


6
C'è un modo per farlo semplicemente inserendo del testo in Gradle e avendo a che fare con file jar e moduli?
JK

@ JK intendi semplicemente far cadere i barattoli e non specificare ogni barattolo?
Oleg Osipenko

3
No, intendo non far cadere alcun barattolo, ma solo dire a Gradle da quale repo ottenerli
JK

4
Prova 'compile' org.apache.commons: commons-collections4: 4.0 '
Oleg Osipenko

1
premendo il segno più un'altra opzione è Dipendenza dalla libreria e c'è la ricerca - digita il nome e cerca la libreria che ti interessa
Oleg Osipenko

420

Scegli quelli che ti servono e aggiungili al build.gradleblocco delle dipendenze di:

Ti consiglio di controllare il link per assicurarti di avere l'ultima versione. Sentiti libero di suggerire modifiche.

collezioni : (link)

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

lang : (collegamento)

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

comprimere : (collegamento)

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

net : (link)

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

io : (collegamento)

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

exec (collegamento)

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

codec (collegamento)

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

http (collegamento)

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

validatore (link)

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

matematica (collegamento)

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

Vedi tutte le librerie Apache qui


1
e per Lang, org.apache.commons:commons-lang3:3.4. fonte: mvnrepository.com/artifact/org.apache.commons/commons-lang3/3.4
Adam Johns

2
e per net, compila 'commons-net: commons-net: 3.3'
M. Usman Khan

@Chad Potresti dire per favore in quale dipendenza si FilenameUtilstrova?
Iqbal

3
@Iqbal è in IO:compile 'commons-io:commons-io:2.5'
Glorfindel

Come mai le collezioni non hanno CircularFifoBuffer? Non riesco a trovarlo. Lo stesso vale per BufferUtils
sviluppatore Android
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.