So schließen Sie ein externes aar-Paket mit Gradle für Android manuell ein
Lesezeit: 8 Minuten
Miguel
Ich habe mit dem neuen Android-Build-System experimentiert und bin auf ein kleines Problem gestoßen. Ich habe mein eigenes aar-Paket von ActionBarSherlock kompiliert, das ich „actionbarsherlock.aar“ genannt habe. Was ich versuche, ist, dieses Aar tatsächlich zu verwenden, um meine endgültige APK zu erstellen. Wenn ich die gesamte ActionBarSherlock-Bibliothek als Android-Bibliotheksmodul mit dem Kompilierungsprojekt (‘:actionbarsherlock’) in mein Hauptprojekt einbinde, kann ich ohne Probleme erfolgreich bauen.
Aber mein Problem ist, dass ich diese Abhängigkeit MANUELL als AAR-Dateipaket bereitstellen möchte, nur wenn ich ein JAR würde, dann kann ich anscheinend nicht herausfinden, wie ich es richtig in mein Projekt einbeziehen kann. Ich habe versucht, die Kompilierungskonfiguration zu verwenden, aber das scheint nicht zu funktionieren. Ich erhalte während des Kompilierens immer wieder ein Symbol, das nicht gefunden werden kann, was mir sagt, dass die Datei “classes.jar” aus dem aar-Paket nicht in den Klassenpfad aufgenommen wird.
Kennt jemand die Syntax, um ein AAR-Paket manuell als Datei einzufügen?
BEARBEITEN: Die Antwort lautet also, dass es derzeit nicht unterstützt wird, hier ist die Ausgabe wenn du es verfolgen willst.
BEARBEITEN: Da dies derzeit noch nicht direkt unterstützt wird, scheint die beste Alternative die vorgeschlagene Lösung von @RanWakshlak zu sein
BEARBEITEN: Auch einfacher durch Verwendung der von @VipulShah vorgeschlagenen Syntax
Betrachten Sie die Antwort von Vipul Shah: Ab Android Studio 0.5.8 funktionierte es endlich für mich ohne lokales Maven-Repository.
– shkschneider
12. Mai 2014 um 13:34 Uhr
Schauen Sie sich meine Frage und Antwort hier an stackoverflow.com/a/31662782/746347
– Mixel
27. Juli 2015 um 20:36 Uhr
Wenn Sie Gradle 3.0.0 oder höher verwenden, hat dieses einfache Gradle-Setup für mich funktioniert: stackoverflow.com/questions/29081429/…
– Benutzer1506104
3. Mai 2018 um 4:02 Uhr
es funktioniert für mich: stackoverflow.com/a/67918749
– Milad Ahmadi
23. November 2021 um 7:04 Uhr
Beantwortet das deine Frage? Android Studio: JAR als Bibliothek hinzufügen?
– Mahozad
25. Januar um 16:11 Uhr
Vipul
Bitte befolgen Sie die folgenden Schritte, damit es funktioniert (ich habe es bis Android Studio 2.2 getestet)
Nehmen wir an, Sie haben eine AR-Datei im libs-Ordner gespeichert. (annehmen Dateiname ist cards.aar )
dann in App build.gradle Geben Sie Folgendes an und klicken Sie auf Projekt mit Gradle-Dateien synchronisieren. Öffnen Sie build.gradle auf Projektebene und fügen Sie es hinzu flatDir{dirs 'libs'} wie unten
Wenn alles gut geht, sehen Sie, dass der Bibliothekseintrag in build -> exploded-aar erfolgt ist
Beachten Sie auch, dass Sie, wenn Sie eine .aar-Datei aus einem anderen Projekt mit Abhängigkeiten importieren, diese auch in Ihre build.gradle aufnehmen müssen.
@VipulShah wo befindet sich das libs-Verzeichnis?
– StuStirling
10. Juli 2014 um 14:49 Uhr
Eventuell sollte empfohlen werden, Änderungen im App-Modul ‚build.gradle‘ und nicht im obersten Ordner ‚build.gradle‘ abzulegen.
– loloof64
29. Januar 2015 um 20:29 Uhr
Antwort auf meine obige Frage gefunden: statt der compile Abhängigkeit fügen Sie zwei Abhängigkeiten hinzu debugCompile(name:'cards-debug', ext:'aar') und releaseCompile(name:'cards-release', ext:'aar')
– Ifta
1. Juli 2015 um 9:45 Uhr
Nicht mit dem Beispielcode verwechseln. Erster Block mit allprojects {...} geht auf die “projekt” gradle datei, und den zweiten teil mit dependencies {...} sollte zur Gradle-Datei auf “App” -Ebene gehen.
– Kirill Karmazin
23. Juni 2017 um 12:06 Uhr
Bitte aktualisieren Sie Ihre Antwort: WARNUNG: Die Konfiguration „compile“ ist veraltet und wurde durch „implementation“ und „api“ ersetzt. Es wird Ende 2018 entfernt. Weitere Informationen finden Sie unter: d.android.com/r/tools/update-dependency-configurations.html
– B-Gangster
5. Februar 2019 um 2:46 Uhr
Oliver Kranz
Klicken Sie mit der rechten Maustaste auf Ihr Projekt und wählen Sie es aus “Moduleinstellungen öffnen”.
Drücke den “+” Schaltfläche in der oberen linken Ecke des Fensters, um ein neues Modul hinzuzufügen.
Auswählen “.JAR- oder .AAR-Paket importieren” und klicken Sie auf die “Nächste” Taste.
Suchen Sie die AAR-Datei mithilfe der Schaltfläche mit den Auslassungspunkten “…” neben dem Feld “Dateiname”.
Lassen Sie das Modul der App ausgewählt und klicken Sie auf das Abhängigkeiten Bereich, um das neue Modul als Abhängigkeit hinzuzufügen.
Verwenden Sie die “+” Schaltfläche des Abhängigkeitsbildschirms und wählen Sie aus “Modulabhängigkeit”.
Wählen Sie das Modul aus und klicken Sie “OK”.
BEARBEITEN: Modulabhängigkeit in Screenshot 6 wurde in Android Studio 4.1 entfernt. Alternativ fügen Sie die Modulabhängigkeit zu der hinzu build.gradle.
EDIT: Die Benutzeroberfläche und der Arbeitsablauf wurden in Android Studio 4.2 stark verändert. Der Vorgang zum Hinzufügen einer Abhängigkeit wird jetzt in einer offiziellen Dokumentation sehr gut erklärt: Hinzufügen von Abhängigkeiten mit dem Projektstruktur-Dialog
Beste Antwort, denken Sie daran, danach zu machen Alt+B > Projekt bereinigen und neu erstellen. Android Studio, warum Sie schmerzhaft sind! Ich möchte NetBeans IDE als Android-Entwicklerplattform haben
– Java-Acm
2. Januar 2017 um 10:40 Uhr
Es ist nicht die beste Idee, jedes Mal ein neues Modul zu erstellen, wenn Sie nur einige hinzufügen möchten aar lib zu Ihrem Projekt
– Kirill Karmazin
4. Oktober 2018 um 14:25 Uhr
Module Dependency Die Option wurde im neuesten Android Studio (V4.1) aus dem Popout-Menü entfernt.
– Prasad Pawar
5. März 2021 um 10:25 Uhr
Jede Methode, die auf GUI basiert, klickt hier und GUI-Klick, die nicht auf wissenschaftlichen Methoden basiert. Das funktioniert nicht
– Eigenfeld
21. April 2021 um 3:25 Uhr
import .jar/.aar package wird aus add module in Android Studio 4.2 entfernt und in den Projektstrukturdialog verschoben: developer.android.com/studio/projects/…
– Hanni
5. Mai 2021 um 15:01 Uhr
Ran Wakshlak
Sie können eine AAR-Datei aus einem Repository referenzieren. Ein Maven ist eine Option, aber es gibt eine einfachere Lösung: Legen Sie die aar-Datei in Ihr libs-Verzeichnis und fügen Sie ein Verzeichnis-Repository hinzu.
Dies funktioniert hervorragend und ist besser als die akzeptierten/höher bewerteten Antworten, da es einfacher ist und ich dies in die Versionskontrolle aufnehmen kann, ohne die Datei zum lokalen Maven-Repo jedes Entwicklers hinzuzufügen (wenn ich das tun müsste, warum sollte ich dann überhaupt Gradle verwenden?). ?) Danke!
– ajpolt
23. April 2014 um 22:52 Uhr
@ajpolt Wahrscheinlich wird empfohlen, stattdessen einen Repo-Server einzurichten (für proprietäre Deps), damit Sie ihn nicht auf Entwicklungscomputern oder im lib-Ordner Ihres Projekts ablegen müssen. Wenn Sie nur eine Abhängigkeit haben, werfen Sie sie in ein Maven-strukturiertes Google-Code-Repository (als temporäres Repo).
– Lo Tan
27. Juni 2014 um 19:43 Uhr
Der wichtigste Punkt in dieser Antwort ist die Erwähnung von „@aar“ am Ende der Abhängigkeit.
– Atharva
3. Oktober 2014 um 7:47 Uhr
Ich nehme an, das wird mit dem neuesten Gradle-Plugin nicht mehr funktionieren: stackoverflow.com/questions/60878599/…
– David
5. Mai 2020 um 22:53 Uhr
Dies ist die einzige Antwort, die die einfachste Form mit der gesamten modernen Syntax enthält, einschließlich implementation usw. Dies ist das Kopieren und Einfügen der Lösung. Viele neue Upvotes gehen ein, weil Android Build Gradle Plugin 4.0.0 jetzt einen Fehler auslöst, anstatt defekte .aar-Pfade zu ignorieren
Der folgende Ansatz funktioniert mit Android Studio v0.8.x:
Speichern Sie die aar Datei unter den App-Modulen libs Ordner (zB: <project>/<app>/libs/myaar.aar)
Fügen Sie das Folgende zu build.gradle Ihres „app“-Modulordners hinzu (nicht Ihr Projektstamm build.gradle). Beachten Sie den Namen in der Kompilierungszeile, es ist myaar@aar, nicht myaar.aar.
Betrachten Sie die Antwort von Vipul Shah: Ab Android Studio 0.5.8 funktionierte es endlich für mich ohne lokales Maven-Repository.
– shkschneider
12. Mai 2014 um 13:34 Uhr
Schauen Sie sich meine Frage und Antwort hier an stackoverflow.com/a/31662782/746347
– Mixel
27. Juli 2015 um 20:36 Uhr
Wenn Sie Gradle 3.0.0 oder höher verwenden, hat dieses einfache Gradle-Setup für mich funktioniert: stackoverflow.com/questions/29081429/…
– Benutzer1506104
3. Mai 2018 um 4:02 Uhr
es funktioniert für mich: stackoverflow.com/a/67918749
– Milad Ahmadi
23. November 2021 um 7:04 Uhr
Beantwortet das deine Frage? Android Studio: JAR als Bibliothek hinzufügen?
– Mahozad
25. Januar um 16:11 Uhr