วิธีเพิ่มคอลเลกชัน Apache Commons ใน Android Studio (Gradle)


100

ฉันพยายามใช้ 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 ในรูทของโมดูลของคุณ จากนั้นไฟล์ -> การตั้งค่าโครงการ ทางด้านซ้ายให้เลือกโมดูลที่คุณต้องการเพิ่ม lib นี้ทางด้านขวาให้เลือกแท็บการขึ้นต่อกัน ที่ด้านล่างให้กดเครื่องหมายบวกแล้วคลิกการพึ่งพาไฟล์ จากนั้นเลือกโถและโครงการซิงค์ของคุณ


6
มีวิธีทำเพียงแค่วางข้อความบางส่วนใน Gradle และต้องจัดการกับไฟล์ jar และโมดูลหรือไม่?
JK

@JK คุณหมายถึงเพียงแค่วางขวดและไม่ระบุแต่ละโถ?
Oleg Osipenko

3
ไม่ฉันหมายความว่าจะไม่ทิ้งขวดใด ๆ เพียงแค่บอกให้รู้ว่า repo จะได้อะไรจาก
JK

5
ลอง 'คอมไพล์' org.apache.commons: commons-collections4: 4.0 '
Oleg Osipenko

1
ในการกดเครื่องหมายบวกอีกทางเลือกหนึ่งคือการพึ่งพาไลบรารีและมีการค้นหา - พิมพ์ชื่อและค้นหาไลบรารีที่คุณสนใจ
Oleg Osipenko

430

เลือกสิ่งที่คุณต้องการและเพิ่มลงใน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
Adam Johns

2
และสำหรับ net ให้รวบรวม 'commons-net: commons-net: 3.3'
M. Usman Khan

@ ชาดคุณช่วยบอกได้ไหมว่าการพึ่งพาFilenameUtilsคืออะไร?
Iqbal

3
@Iqbal อยู่ใน IO:compile 'commons-io:commons-io:2.5'
Glorfindel

ทำไมคอลเลกชันจึงไม่มี CircularFifoBuffer? ฉันหาไม่เจอ เช่นเดียวกันกับ BufferUtils
นักพัฒนา Android
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.