So schließen Sie ein externes aar-Paket mit Gradle für Android manuell ein

Lesezeit: 8 Minuten

So schliesen Sie ein externes aar Paket mit Gradle fur Android
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?

build.gradle

buildscript {

 repositories {
     mavenCentral()
  }
  dependencies {
    classpath 'com.android.tools.build:gradle:0.4'
  }
}
apply plugin: 'android'

repositories {
   mavenCentral()
}
dependencies {
    compile files('libs/actionbarsherlock.aar')
}

android {
    compileSdkVersion 15
    buildToolsVersion "17.0"
}

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

1646640191 646 So schliesen Sie ein externes aar Paket mit Gradle fur Android
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

allprojects {
   repositories {
      jcenter()
      flatDir {
        dirs 'libs'
      }
   }
}

und öffnen Sie nun die build.grdle-Datei auf App-Ebene und fügen Sie sie hinzu .aar Datei

    dependencies {
       implementation(name:'cards', ext:'aar')
}

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

So schliesen Sie ein externes aar Paket mit Gradle fur Android
Oliver Kranz

  1. Klicken Sie mit der rechten Maustaste auf Ihr Projekt und wählen Sie es aus “Moduleinstellungen öffnen”.

Moduleinstellungen öffnen

  1. Drücke den “+” Schaltfläche in der oberen linken Ecke des Fensters, um ein neues Modul hinzuzufügen.

Neues Modul hinzufügen

  1. Auswählen “.JAR- oder .AAR-Paket importieren” und klicken Sie auf die “Nächste” Taste.

AAR importieren

  1. Suchen Sie die AAR-Datei mithilfe der Schaltfläche mit den Auslassungspunkten “…” neben dem Feld “Dateiname”.

Suchen Sie die AAR-Datei

  1. 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.

Abhängigkeitsbereich

  1. Verwenden Sie die “+” Schaltfläche des Abhängigkeitsbildschirms und wählen Sie aus “Modulabhängigkeit”.

Modulabhängigkeit hinzufügen

  1. Wählen Sie das Modul aus und klicken Sie “OK”.

Modul auswählen

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.

dependencies {
    implementation project(':your_module')
}

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

1646640195 845 So schliesen Sie ein externes aar Paket mit Gradle fur Android
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.

    repositories {
      mavenCentral()
      flatDir {
        dirs 'libs'
      }
    }

Verweisen Sie dann auf die Bibliothek im Abhängigkeitsabschnitt:

  dependencies {
        implementation 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
}

Sie können auschecken Min’an-Blogbeitrag Für mehr Information.

  • 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

    – Lawine

    2. Juni 2020 um 13:39 Uhr

1646640195 750 So schliesen Sie ein externes aar Paket mit Gradle fur Android
Changhoon

vorher (Standard)

implementation fileTree(include: ['*.jar'], dir: 'libs')

einfach hinzufügen '*.aar' in include Reihe.

implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')

es funktioniert gut auf Android Studio 3.x.

wenn Sie eine Bibliothek ignorieren möchten? mach das so.

implementation fileTree(include: ['*.jar', '*.aar'], exclude: 'test_aar*', dir: 'libs')
debugImplementation files('libs/test_aar-debug.aar')
releaseImplementation files('libs/test_aar-release.aar')

1646640196 886 So schliesen Sie ein externes aar Paket mit Gradle fur Android
erschrocken

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.

     dependencies {
         compile 'package.name.of.your.aar:myaar@aar'
     }
    
     repositories{
         flatDir{
             dirs 'libs'
         }
     }
    
  • Klicken Tools -> Android -> Sync Project with Gradle Files

  • Funktioniert perfekt auf AS 1.0

    – Pablo Johnson

    9. Dezember 2014 um 15:22 Uhr

  • Falls jemand es braucht, wenn Gradle funktioniert, aber Sie immer noch keine Klassen sehen können, starten Sie Android Studio neu …

    – htafoya

    2. November 2016 um 7:48 Uhr

  • Diese Lösung funktioniert hervorragend in AS2.2 – Gradle ist anscheinend erstaunlich wählerisch in Bezug auf die Syntax von AAR-Dateien.

    – Jim Andreas

    19. November 2016 um 6:56 Uhr

  • Bitte aktualisieren oder löschen, kompilieren ist veraltet und es gibt auch dieses Problem: stackoverflow.com/questions/60878599/…

    – David

    5. Mai 2020 um 22:54 Uhr

1646640196 933 So schliesen Sie ein externes aar Paket mit Gradle fur Android
m0skit0

Mit Android Studio 3.4 und Gradle 5 können Sie es einfach so machen

dependencies {
    implementation files('libs/actionbarsherlock.aar')
}

  • Funktioniert perfekt auf AS 1.0

    – Pablo Johnson

    9. Dezember 2014 um 15:22 Uhr

  • Falls jemand es braucht, wenn Gradle funktioniert, aber Sie immer noch keine Klassen sehen können, starten Sie Android Studio neu …

    – htafoya

    2. November 2016 um 7:48 Uhr

  • Diese Lösung funktioniert hervorragend in AS2.2 – Gradle ist anscheinend erstaunlich wählerisch in Bezug auf die Syntax von AAR-Dateien.

    – Jim Andreas

    19. November 2016 um 6:56 Uhr

  • Bitte aktualisieren oder löschen, kompilieren ist veraltet und es gibt auch dieses Problem: stackoverflow.com/questions/60878599/…

    – David

    5. Mai 2020 um 22:54 Uhr

1646640196 986 So schliesen Sie ein externes aar Paket mit Gradle fur Android
Tarun A

Fügen Sie die folgende Zeile in build.gradle auf App-Ebene hinzu

  implementation fileTree(dir: "libs", include: ["*.aar"])

Ändern Sie die Projektstruktur von Android zu Project.

Navigieren Sie zu app->libs wie nachstehend

Geben Sie hier die Bildbeschreibung ein

Dann einfügen “aar” im libs-Ordner.

Klicke auf Datei oben links in Android Studio und klicken Sie auf “Projekt mit Gradle-Dateien synchronisieren” wie nachstehend.

Geben Sie hier die Bildbeschreibung ein

Das ist es.

964200cookie-checkSo schließen Sie ein externes aar-Paket mit Gradle für Android manuell ein

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy