Jak dodać kolekcje Apache Commons w Android Studio (Gradle)

98

Próbuję użyć ListUtils, ale kiedy uruchomiłem aplikację, dostałem ten błąd:

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

Więc wydaje mi się, że muszę jakoś zaimportować tę bibliotekę przez Gradle, ale nie wiem jak to zrobić?

JK
źródło
HttpClient był już częścią Androida, ale przestarzały od API 23+: stackoverflow.com/a/32157466/1085264
straya

Odpowiedzi:

6

Umieść plik jar w folderze libs w katalogu głównym modułu. Następnie Plik -> Ustawienia projektu. Po lewej stronie wybierz moduł, do którego chcesz dodać tę bibliotekę, po prawej wybierz zakładkę Zależności. Na dole naciśnij znak plusa i kliknij Zależność pliku. Następnie wybierz swój jar i zsynchronizuj projekt

Oleg Osipenko
źródło
6
Czy można to zrobić po prostu umieszczając tekst w Gradle i zajmując się plikami jar i modułami?
JK
@JK masz na myśli po prostu upuść słoiki i nie określając każdego z nich?
Oleg Osipenko
3
Nie, mam na myśli nie upuszczanie żadnych słoików, tylko mówienie gradle, z jakiego repozytorium je wziąć
JK
4
Spróbuj „kompilować” org.apache.commons: commons-collections4: 4.0 ”
Oleg Osipenko
1
po naciśnięciu znaku plus kolejną opcją jest Zależność od biblioteki i jest wyszukiwanie - wpisz nazwę i wyszukaj interesującą Cię bibliotekę
Oleg Osipenko
421

Wybierz te, których potrzebujesz i dodaj je do build.gradlebloku zależności:

Zalecam sprawdzenie linku, aby upewnić się, że otrzymujesz najnowszą wersję. Zapraszam do sugerowania zmian.

kolekcje : (link)

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

lang : (link)

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

kompresja : (link)

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

sieć : (link)

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

io : (łącze)

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

exec (link)

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

kodek (link)

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

http (link)

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

walidator (link)

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

matematyka (link)

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

Zobacz wszystkie biblioteki Apache tutaj

Chad Bingham
źródło
1
i Lang org.apache.commons:commons-lang3:3.4. źródło: mvnrepository.com/artifact/org.apache.commons/commons-lang3/3.4
Adam Johns
2
a dla sieci skompiluj 'commons-net: commons-net: 3.3'
M. Usman Khan
@Chad Czy mógłbyś powiedzieć, w której zależności FilenameUtils?
Iqbal
3
@Iqbal jest w IO:compile 'commons-io:commons-io:2.5'
Glorfindel
Dlaczego kolekcje nie mają CircularFifoBuffer? Nie mogę tego znaleźć. To samo dotyczy BufferUtils
programisty Androida