So fügen Sie Apache Commons-Sammlungen in Android Studio (Gradle) hinzu

98

Ich versuche ListUtils zu verwenden, aber als ich die App ausführte, bekam ich diesen Fehler:

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

Also muss ich diese Bibliothek wohl irgendwie über gradle importieren, aber ich weiß nicht, wie ich das machen soll?

JK
quelle
HttpClient war bereits Teil von Android, aber von API 23+ veraltet: stackoverflow.com/a/32157466/1085264
straya

Antworten:

6

Platzieren Sie die JAR-Datei im Ordner libs im Stammverzeichnis Ihres Moduls. Dann Datei -> Projekteinstellungen. Wählen Sie auf der linken Seite das Modul aus, in dem Sie diese Bibliothek hinzufügen möchten, und wählen Sie auf der rechten Seite die Registerkarte Abhängigkeiten. Drücken Sie unten das Pluszeichen und klicken Sie auf Dateiabhängigkeit. Wählen Sie dann Ihr Glas und synchronisieren Sie das Projekt

Oleg Osipenko
quelle
6
Gibt es eine Möglichkeit, dies zu tun, indem Sie einfach Text in Gradle einfügen und sich mit JAR-Dateien und -Modulen befassen müssen?
JK
@JK meinst du einfach Gläser fallen lassen und nicht jedes Glas angeben?
Oleg Osipenko
3
Nein, ich meine, keine Gläser fallen zu lassen, nur Gradle zu sagen, von welchem ​​Repo sie zu bekommen sind
JK
4
Versuchen Sie 'compile' org.apache.commons: commons-collection4: 4.0 '
Oleg Osipenko
1
Wenn Sie das Pluszeichen drücken, ist eine andere Option die Bibliotheksabhängigkeit und es gibt eine Suche - geben Sie den Namen ein und suchen Sie nach der Bibliothek, an der Sie interessiert sind
Oleg Osipenko
419

Wählen Sie die benötigten aus und fügen Sie sie dem build.gradleAbhängigkeitsblock hinzu:

Ich empfehle, den Link zu überprüfen, um sicherzustellen, dass Sie die neueste Version erhalten. Fühlen Sie sich frei, Änderungen vorzuschlagen.

Sammlungen : (Link)

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

lang : (link)

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

komprimieren : (Link)

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

net : (link)

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

io : (Link)

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

exec (Link)

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

Codec (Link)

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

http (Link)

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

Validator (Link)

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

Mathe (Link)

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

Hier finden Sie alle Apache-Bibliotheken

Chad Bingham
quelle
1
und für lang , org.apache.commons:commons-lang3:3.4. Quelle: mvnrepository.com/artifact/org.apache.commons/commons-lang3/3.4
Adam Johns
2
und für net kompilieren Sie 'commons-net: commons-net: 3.3'
M. Usman Khan
@Chad Könnten Sie bitte sagen, in welcher Abhängigkeit, FilenameUtilsist?
Iqbal
3
@ Iqbal es ist in IO:compile 'commons-io:commons-io:2.5'
Glorfindel
Wie kommt es, dass Sammlungen keinen CircularFifoBuffer haben? Ich kann es nicht finden Gleiches gilt für BufferUtils
Android-Entwickler