Як додати колекції 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-collection4: 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'

net : (посилання)

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це?
Ікбал

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

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