541 Stimmen

Wie man manuell ein externes AAR-Paket unter Verwendung von Gradle für Android einbindet

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 zu tun, ist eigentlich, dieses aar zu verwenden, um meine endgültige APK zu erstellen. Wenn ich die gesamte ActionBarSherlock-Bibliothek als Android-Bibliotheksmodul zu meinem Hauptprojekt hinzufüge, indem ich 'compile project (':actionbarsherlock')' verwende, kann ich erfolgreich ohne Probleme kompilieren.

Aber mein Problem ist, dass ich diese Abhängigkeit als aar-Paket MANUELL bereitstellen möchte, genauso wie bei einem JAR, 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 der Kompilierung immer "cannot find symbol", was mir sagt, dass die classes.jar aus dem aar-Paket nicht in den Klassenpfad einbezogen wird.

Weiß jemand, wie die Syntax ist, um ein aar-Paket manuell als Datei einzubinden?

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"
}

EDIT: Die Antwort lautet, dass dies derzeit nicht unterstützt wird. Hier ist das Problem, wenn Sie es verfolgen möchten.

EDIT: Derzeit, da dies immer noch nicht direkt unterstützt wird, scheint die beste Alternative die vorgeschlagene Lösung von @RanWakshlak zu sein

EDIT: Auch einfacher durch die Verwendung der Syntax, die von @VipulShah vorgeschlagen wurde

19voto

mixel Punkte 23869

Sie können mehrere aar-Abhängigkeiten mit nur wenigen Codezeilen hinzufügen.

Fügen Sie das lokale flatDir-Repository hinzu:

repositories {
    flatDir {
        dirs 'libs'
    }
} 

Fügen Sie jede aar im libs-Verzeichnis zur compile-Abhängigkeitskonfiguration hinzu:

fileTree(dir: 'libs', include: '**/*.aar')
        .each { File file ->
    dependencies.add("compile", [name: file.name.lastIndexOf('.').with { it != -1 ? file.name[0..

19voto

Ilya Mashin Punkte 904

Wenn Sie Gradle Kotlin DSL verwenden, müssen Sie eine Datei in Ihrem Modulverzeichnis hinzufügen.

Zum Beispiel: libs/someAndroidArchive.aar

Schreiben Sie danach einfach dies in Ihrem Modul build.gradle.kts im Abhängigkeitsblock:

implementation(files("libs/someAndroidArchive.aar"))

17voto

shanwu Punkte 1021

So importieren Sie AAR-Dateien manuell mit Android Studio Arctic Fox

Schritt 1. Projektstruktur öffnen
Bildbeschreibung hier eingeben

Schritt 2. Projektstruktur öffnen
Bildbeschreibung hier eingeben

Schritt 3. Dateipfad eingeben
Bildbeschreibung hier eingeben

FERTIG!

15voto

Nonos Punkte 2427

Leider haben keine der Lösungen hier bei mir funktioniert (ich bekomme ungelöste Abhängigkeiten). Was letztendlich funktioniert hat und meiner Meinung nach der einfachste Weg ist: Markieren Sie den Projektnamen von Android Studio, dann Datei -> Neues Modul -> JAR- oder AAR-Paket importieren. Der Dank geht an die Lösung in diesem Beitrag

12voto

Álvaro Agüero Punkte 3535

ANDROID STUDIO 3.4 AKTUALISIEREN

  1. Gehen Sie zu Datei -> Projektstruktur

Bildbeschreibung hier eingeben

  1. Module auswählen und auf + klicken

Bildbeschreibung hier eingeben

  1. .aar-Paket importieren auswählen

Bildbeschreibung hier eingeben

  1. Den Pfad zur .aar-Datei finden

Bildbeschreibung hier eingeben

  1. Fertigstellen und Anwenden, dann überprüfen, ob das Paket hinzugefügt wurde

Bildbeschreibung hier eingeben

  1. Jetzt im App-Modul auf + und Modulabhängigkeit klicken

Bildbeschreibung hier eingeben

  1. Das Bibliothekspaket überprüfen und auf Ok klicken

Bildbeschreibung hier eingeben

  1. Die hinzugefügte Abhängigkeit überprüfen

Bildbeschreibung hier eingeben

  1. Und die Projektstruktur sieht dann so aus

Bildbeschreibung hier eingeben

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X