Da ich einige Änderungen an der Smack-Bibliothek vornehmen muss, möchte ich den Smack als Bibliothek meinem Android Studio-Projekt hinzufügen. Ich habe die ZIP-Datei aus den Smack Github repository herunterladen und habe die folgenden Schritte - wie ich während der Suche nach Lösungen gefundenBibliothek (Smack) zu Android Studio-Projekt hinzufügen
(1) Erstellt einen neuen Ordner libs
in meinem Projekt Stammordner kopiert und die extrahierten und umbenannten Ordner /Smack
in libs
. So ist es jetzt die folgende Struktur:
root/libs/Smack/
(2) ich meine settings.gradle
im Stammordner
include ':app'
include ':libs:Smack'
(3) Via File -> Project Structure -> Modules app -> Dependencies
zu
:libs:Smack
als Modulabhängigkeits
hinzugefügt
(4) Ich habe die folgende Zeile zu root/app/build.gradle
compile project(':libs:Smack')
hinzugefügt
Laut den meisten Quellen, die ich online gefunden habe, sollte das so sein. Allerdings habe ich einen Fehler, dass Gradle project sync failed
. Genauer gesagt ich:
/path-to-root/libs/Smack/build.gradle
Error:(42, 0) Project with path ':smack-integration-test' could not be found in project ':libs:Smack'.
Wenn ich die Datei und Zeile es project(':smack-integration-test')
sagt zu suchen. Irgendwie kann das nicht gefunden werden. Es gibt jedoch einen Ordner libs/Smack/smack-integration-test
. Es sieht ziemlich einfach aus, aber ich vermisse etwas Entscheidendes hier.
EDIT: Android Studio Import tatsächlich unterstützt Gradle Projekte: File -> New -> New Module
öffnet sich ein Dialogfenster, in dem ich Import Gradle Project
wählen, wo ich das Quellverzeichnis von hier, Smack auszuwählen. Dies macht alle korrekten Include-Anweisungen in settings.gradle
.
jedoch nicht erhalte ich die Fehlermeldung:
Error:(386, 0) Could not get unknown property 'clirr' for project ':smack-integration-test' of type org.gradle.api.Project.
Da ich mit Gradle nicht vertraut genug bin, ich habe keine Ahnung, was das bedeuten könnte, und meine Google-Suche auch mich nicht vorantreiben.
Ich schaute hinein. Aber das Erstellen einer JAR-Datei aus einem Gradle-Projekt scheint nicht gerade einfach zu sein. Ich muss diesen Weg vielleicht gehen, ich habe nur gehofft, schnelle Lösung zu haben, selbst wenn es schmutzig ist, da es nur für Testzwecke ist. – Christian
Ich habe einen Test lokal mit der Smack-Bibliothek gemacht und es ist ziemlich einfach, wenn Sie den grddle-Befehl in seiner Wurzel ausführen, wird er alle Unterprojekte erstellen. Von dort aus können Sie die für Sie relevanten Jars aus den Build-Ordnern auswählen – petrumo
Ich habe die Antwort akzeptiert, da auf diese Weise Fortschritte gemacht wurden.Ich konnte die verschiedenen JAR-Dateien erstellen und in mein Projekt importieren. Ersetzen Sie jedoch die 'compile 'org.igniterealtime.smack: smack-android: 4.1.0'' Zeilen mit den entsprechenden' compile files (' libs/... jar ') 'Zeilen warf Fehler in meinem Quellcode. Ich nehme an, dass es verschiedene Versionen gibt. – Christian