Как добавить коллекции Apache Commons в Android Studio (Gradle)


98

Я пытаюсь использовать ListUtils, но когда я запустил приложение, я получил эту ошибку:

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

Думаю, мне нужно как-то импортировать эту библиотеку через gradle, но я не знаю, как это сделать?


HttpClient уже был частью Android, но устарел из API 23+: stackoverflow.com/a/32157466/1085264
straya

Ответы:


6

Поместите файл jar в папку libs в корне вашего модуля. Затем Файл -> Настройки проекта. В левой части выберите модуль, в который вы хотите добавить эту библиотеку, в правой части выберите вкладку «Зависимости». Внизу нажмите знак «Плюс» и выберите «Зависимость файла». Затем выберите свой проект jar и синхронизируйте


6
Есть ли способ сделать это, просто поместив текст в Gradle и имея дело с файлами и модулями jar?
JK

@JK, ты имеешь в виду, просто отбрасывать банки и не указывать каждую банку?
Олег Осипенко

3
Нет, я имею в виду не ронять банки, а просто указывать gradle, из какого репо их брать
JK

4
Попробуйте 'скомпилировать' org.apache.commons: commons-collections4: 4.0 '
Олег Осипенко

1
при нажатии на знак плюса другой вариант - Зависимость библиотеки, и есть поиск - введите имя и найдите интересующую вас библиотеку
Олег Осипенко

421

Выберите те, которые вам нужны, и добавьте их в build.gradleблок зависимостей:

Я рекомендую проверить ссылку, чтобы убедиться, что вы получаете последнюю версию. Не стесняйтесь предлагать правки.

коллекции : (ссылка)

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

lang : (ссылка)

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

сжатие : (ссылка)

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

сеть : (ссылка)

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

io : (ссылка)

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

exec (ссылка)

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

кодек (ссылка)

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

http (ссылка)

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

валидатор (ссылка)

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

математика (ссылка)

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

Посмотреть все библиотеки Apache здесь


1
и Ланг org.apache.commons:commons-lang3:3.4. источник: mvnrepository.com/artifact/org.apache.commons/commons-lang3/3.4
Адам Джонс,

2
а для сети скомпилируйте 'commons-net: commons-net: 3.3'
М. Усман Хан

@Chad Не могли бы вы сказать, в какой это зависимости FilenameUtils?
Iqbal

3
@Iqbal это в IO:compile 'commons-io:commons-io:2.5'
Глорфиндель

Почему в коллекциях нет CircularFifoBuffer? Я не могу его найти. То же самое и с BufferUtils
разработчиком Android
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.