Frage Wie füge ich ein Bibliotheksprojekt zu Android Studio hinzu?


Wie füge ich ein Bibliotheksprojekt (zB Sherlock ABS) hinzu Android Studio?

(Nicht zu dem alten ADT Eclipse-basierten Bundle, sondern zu dem neuen Android Studio.)


740
2018-05-16 12:55


Ursprung


Antworten:


Update für Android Studio 1.0

Seit Android Studio 1.0 veröffentlicht wurde (und viele Versionen zwischen v1.0 und einer der ersten Versionen seit meiner letzten Antwort) haben sich einige Dinge geändert.

Meine Beschreibung konzentriert sich auf das Hinzufügen von externen Bibliotheksprojekten per Hand über Gradle-Dateien (zum besseren Verständnis des Prozesses). Wenn Sie eine Bibliothek über Android Studio Creator hinzufügen möchten, klicken Sie einfach auf die Antwort unten mit visueller Anleitung (es gibt einige Unterschiede zwischen Android Studio 1.0 und denen von Screenshots, aber der Prozess ist sehr ähnlich).

Bevor Sie beginnen, manuell eine Bibliothek zu Ihrem Projekt hinzuzufügen, sollten Sie die externe Abhängigkeit hinzufügen. Es wird Ihre Projektstruktur nicht durcheinander bringen. Fast jede bekannte Android-Bibliothek ist in einem verfügbar Maven Repository und seine Installation nimmt nur eine Zeile Code in der app/build.gradle Datei:

dependencies {
     compile 'com.jakewharton:butterknife:6.0.0'
}

Hinzufügen der Bibliothek

Hier ist der vollständige Prozess des Hinzufügens externer Android-Bibliothek zu unserem Projekt:

  1. Erstellen Sie ein neues Projekt über den Android Studio-Ersteller. Ich habe es genannt Hallo Welt.
  2. Hier ist die ursprüngliche Projektstruktur, die von Android Studio erstellt wurde:
HelloWorld/
      app/
           - build.gradle  // local Gradle configuration (for app only)
           ...
      - build.gradle // Global Gradle configuration (for whole project)
      - settings.gradle
      - gradle.properties
      ...
  1. Im Stammverzeichnis (HelloWorld/), neuen Ordner erstellen: /libs in dem wir unsere externen Bibliotheken platzieren werden (dieser Schritt ist nicht erforderlich - nur für eine sauberere Projektstruktur).
  2. Fügen Sie Ihre Bibliothek in das neu erstellte ein /libs Mappe. In diesem Beispiel habe ich verwendet PagerSlidingTabStrip-Bibliothek (ZIP einfach von GitHub herunterladen, Bibliotheksverzeichnis in "PagerSlidingTabStrip" umbenennen und kopieren.) Hier ist die neue Struktur unseres Projekts:
HelloWorld/
      app/
           - build.gradle  // Local Gradle configuration (for app only)
           ...
      libs/
           PagerSlidingTabStrip/
                - build.gradle // Local Gradle configuration (for library only)
      - build.gradle // Global Gradle configuration (for whole project)
      - settings.gradle
      - gradle.properties
      ...
  1. Bearbeiten Sie settings.gradle, indem Sie Ihre Bibliothek hinzufügen include. Wenn Sie einen benutzerdefinierten Pfad wie ich verwenden, müssen Sie auch das Projektverzeichnis für unsere Bibliothek definieren. Eine ganze settings.gradle sollte wie folgt aussehen:

    include ':app', ':PagerSlidingTabStrip'
    project(':PagerSlidingTabStrip').projectDir = new File('libs/PagerSlidingTabStrip')
    

5.1 Wenn der Fehler "Standardkonfiguration" auftritt, versuchen Sie dies anstelle von Schritt 5,

    include ':app'
    include ':libs:PagerSlidingTabStrip'
  1. Im app/build.gradle füge unser Bibliotheksprojekt als Abhängigkeit hinzu:

    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile 'com.android.support:appcompat-v7:21.0.3'
        compile project(":PagerSlidingTabStrip")
    }
    

6.1. Wenn Sie Schritt 5.1 gefolgt sind, dann folgen Sie diesem anstelle von 6,

    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile 'com.android.support:appcompat-v7:21.0.3'

        compile project(":libs:PagerSlidingTabStrip")
    }
  1. Wenn Ihr Bibliotheksprojekt dies nicht hat build.gradle Datei müssen Sie es manuell erstellen. Hier ist ein Beispiel für diese Datei:

        apply plugin: 'com.android.library'
    
        dependencies {
            compile 'com.android.support:support-v4:21.0.3'
        }
    
        android {
            compileSdkVersion 21
            buildToolsVersion "21.1.2"
    
            defaultConfig {
                minSdkVersion 14
                targetSdkVersion 21
            }
    
            sourceSets {
                main {
                    manifest.srcFile 'AndroidManifest.xml'
                    java.srcDirs = ['src']
                    res.srcDirs = ['res']
                }
            }
        }
    
  2. Zusätzlich können Sie eine globale Konfiguration für Ihr Projekt erstellen, die SDK-Versionen und Build-Tools-Version für jedes Modul enthält, um Konsistenz zu gewährleisten. Einfach bearbeiten gradle.properties Datei und Zeilen hinzufügen:

    ANDROID_BUILD_MIN_SDK_VERSION=14
    ANDROID_BUILD_TARGET_SDK_VERSION=21
    ANDROID_BUILD_TOOLS_VERSION=21.1.3
    ANDROID_BUILD_SDK_VERSION=21
    

    Jetzt können Sie es in Ihrem verwenden build.gradle Dateien (in App- und Bibliotheksmodulen) wie unten:

    //...
    android {
        compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION)
        buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION
    
        defaultConfig {
            minSdkVersion Integer.parseInt(project.ANDROID_BUILD_MIN_SDK_VERSION)
            targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION)
        }
    }
    //...
    
  3. Das ist alles. Klicken Sie einfach auf, um das Projekt mit dem Gradle-Symbol zu synchronisieren synchronise with Gradle. Ihre Bibliothek sollte in Ihrem Projekt verfügbar sein.

Google I / O 2013 - Das neue Android SDK-Buildsystem  ist eine großartige Präsentation über das Erstellen von Android Apps mit Gradle Build System: Wie Xavier Ducrohet sagte:

In Android Studio geht es um das Bearbeiten, Debuggen und Profiling.   Es geht nicht darum, mehr zu bauen.

Zu Beginn mag es etwas verwirrend sein (besonders für diejenigen, die mit Finsternis und habe die Ameise nie gesehen - wie ich;)), aber am Ende gibt Gradle uns einige großartige Möglichkeiten und es lohnt sich, dieses Build-System zu lernen.


687
2018-05-19 20:35



Hier ist der visuelle Leitfaden:

Aktualisieren für Android Studio 0.8.2:

Gehen Sie in Android Studio 0.8.2 zu Projektstruktur -> unter Module Drücken Sie einfach die Plus-Taste und wählen Sie Bestehendes Projekt importieren und importieren actionbarsherlock. Synchronisieren Sie dann Ihre Gradle-Dateien.

Wenn Sie mit dem Fehler konfrontiert werden

Fehler: Die SDK Build Tools-Revision (xx.x.x) ist zu niedrig. Minimum   erforderlich ist yy.y.y

öffne einfach die build.gradle Datei in actionbarsherlock Verzeichnis und aktualisieren Sie die buildToolsVersion zu dem vorgeschlagenen.

android {
  compileSdkVersion 19
  buildToolsVersion 'yy.y.y'

Android Studio 0.8.2


Speisekarte Datei -> Projektstruktur ...:

First

Modul -> Modul importieren

Second

Nach dem Import des Bibliotheksmoduls wählen Sie Ihre Projektmodul und fügen Sie die Abhängigkeit hinzu:

Third

Und dann wähle die importiertes Modul:

Forth


264
2018-05-19 12:33



Verwenden Sie das Menü Datei -> Projektstruktur -> Module.

Ich habe es heute benutzt. Es ist ein bisschen anders.

Für Sherlock möchten Sie vielleicht ihr Testverzeichnis löschen oder das hinzufügen junit.jar Datei zum Klassenpfad.

Um die Bibliothek mit Hilfe von Gradle zu importieren, müssen Sie sie möglicherweise der hinzufügen dependencies Abschnitt von Ihrem build.gradle (das Modul).

Z.B.

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.1.0'
    compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
}

Android Studio ändert sich.

Es gibt einen Abschnitt mit dem Namen "Moduleinstellungen öffnen", wenn Sie Klicken Sie mit der rechten Maustaste auf einen Modulordner im Projektbereich von Android Studio (Ich benutze die Version 0.2.10).


107
2018-05-16 12:57



Ich würde überlegen Abhängigkeiten, Android-Bibliotheken und Multi-Projekt-Setup notwendige Lektüre. Bitte nehmen Sie sich ein paar Minuten Zeit.

Lesen Sie im Fall eines Nicht-Jar-Bibliotheksprojekts das folgende Snippet aus obiger Quelle:

Gradle-Projekte können auch von anderen Großprojekten abhängen, indem ein Multi-Projekt-Setup verwendet wird.   Bei einem Multiprojekt-Setup werden normalerweise alle Projekte als Unterordner eines bestimmten Stammprojekts verwendet.

Zum Beispiel, folgende Struktur gegeben:

MyProject/
 + app/
 + libraries/
    + lib1/
    + lib2/

Wir können 3 Projekte identifizieren. Gradle wird sie mit folgendem Namen referenzieren:

:app
:libraries:lib1
:libraries:lib2

Jedes Projekt hat seinen eigenen Build.Gradle deklariert, wie es gebaut wird.   Darüber hinaus wird es eine Datei namens settings.gradle am root geben, die die Projekte deklariert.   Dies ergibt die folgende Struktur:

MyProject/
 | settings.gradle
 + app/
    | build.gradle
 + libraries/
    + lib1/
       | build.gradle
    + lib2/
       | build.gradle

Der Inhalt von settings.gradle ist sehr einfach:

include ':app', ':libraries:lib1', ':libraries:lib2'

Dies definiert, welcher Ordner eigentlich ein Gradle-Projekt ist.

Das: app-Projekt hängt wahrscheinlich von den Bibliotheken ab. Dies geschieht durch Deklaration der folgenden Abhängigkeiten:

dependencies {
    compile project(':libraries:lib1')
}

Bitte beachten Sie, dass Android Studio GUI nur wenig oder gar nicht genutzt wurde, um dies zu ermöglichen.

Ich benutze derzeit git Submodule die verschachtelte Bibliothek mit dem eigentlichen Bibliotheks-Git-Repo zu verknüpfen, um ein Abhängigkeits-Chaos zu vermeiden.


49
2017-10-14 08:10



Ich habe gerade einen einfacheren Weg gefunden (anstatt direkt in die .gradle-Dateien zu schreiben).

Dies ist für Android Studio 1.1.0.

  1. Speisekarte Datei -> Neues Modul ...:

    Import Existing Project

    Klicken Sie auf "Bestehendes Projekt importieren".

  2. Wählen Sie die gewünschte Bibliothek und das gewünschte Modul.

  3. Klicken Sie auf Fertig stellen. Android Studio importiert die Bibliothek in Ihr Projekt. Es wird Gradle-Dateien synchronisieren.

  4. Fügen Sie das importierte Modul den Abhängigkeiten Ihres Projekts hinzu.

    Klicken Sie mit der rechten Maustaste auf den App-Ordner -> Öffnen Sie die Moduleinstellungen -> gehen Sie zur Registerkarte Abhängigkeiten -> Klicken Sie auf die Schaltfläche '+' -> klicken Sie auf Modulabhängigkeit.

    Das Bibliotheksmodul wird dann den Abhängigkeiten des Projekts hinzugefügt.

    Add library module

  5. ???

  6. Profitieren


23
2018-06-29 16:49



Der einfachste Weg, ein externes Bibliotheksprojekt einzubinden, ist (zB um eine Facebook-Bibliothek aufzunehmen, die ein Verzeichnis im Ordner Abhängigkeiten gespeichert ist):

  1. In settings.gradle hinzufügen

    include ':facebook'
    
    project(':facebook').projectDir = new File(settingsDir, '../dependencies/FacebookSDK')
    
  2. Fügen Sie im Abschnitt build.gradle Abhängigkeiten hinzu

    compile project ('facebook')
    

Alles, was noch zu tun ist, ist das Synchronisieren des Projekts mit Gradle-Dateien.


15
2017-08-08 19:58



Eine einfache Möglichkeit, Ihrem Android Studio-Projekt eine JAR-Datei als Bibliothek hinzuzufügen:

a) Kopieren Sie Ihre * .jar-Dateien

b) Einfügen in die Bibliotheken Verzeichnis unter Ihren Projekten:

Enter image description here

c) Zu build.gradle hinzufügen:

dependencies {
    ...
    compile files('libs/ScanAPIAndroid.jar', 'libs/ScanAPIFactoryAndroid.jar', .., ..)
}

b) Wenn Ihr Projekt aus dem Beispiel com.example.MYProject und den Bibliotheken com.example.ScanAPI denselben Namespace com.example hatAndroid Studio überprüft Ihren Build und erstellt alle notwendigen Änderungen in Ihrem Projekt. Danach können Sie diese Einstellungen im Menü überprüfen Datei -> Projektstruktur.

c) Wenn Ihr Projekt und Ihre Bibliotheken einen anderen Namensraum haben Sie müssen mit der rechten Maustaste auf die Bibliothek klicken und die Option "Als Bibliothek hinzufügen" auswählen und den Typ auswählen, den Sie benötigen.

Denken Sie daran, dass die Option "Projektstruktur" keine automatischen Änderungen in "build.gradle" in der aktuellen Version von Android Studio (0.2.3) vornimmt. Vielleicht wird diese Funktion in den nächsten Versionen verfügbar sein.


13
2017-08-27 21:40



Option 1: Dateien in das libs Verzeichnis des Projekts kopieren

Die relevante build.gradle-Datei wird dann automatisch aktualisiert.

Option 2: Ändern Sie manuell die Build.Gradle-Datei

Öffnen Sie Ihre build.gradle-Datei, und fügen Sie der Abhängigkeiten-Closure eine neue Erstellungsregel hinzu. Wenn Sie beispielsweise Google Play-Dienste hinzufügen möchten, sieht der Abschnitt mit den Abhängigkeiten Ihres Projekts etwa so aus:

dependencies {
     compile fileTree(dir: 'libs', include: ['*.jar'])
     compile 'com.google.android.gms:play-services:6.5.+'
   }

Option 3: Verwenden Sie die Benutzeroberfläche von Android Studio

Im Projektfenster Steuerung + Klicken Sie auf das Modul, dem Sie die Abhängigkeit hinzufügen möchten, und wählen Sie Moduleinstellungen öffnen.

Enter image description here

Wählen Sie die Registerkarte Abhängigkeiten, gefolgt von der Schaltfläche + in der unteren linken Ecke. Sie können aus der folgenden Liste von Optionen wählen:

  • Bibliotheksabhängigkeit
  • Dateiabhängigkeit
  • Modulabhängigkeit

Sie können dann weitere Informationen zu der Abhängigkeit eingeben, die Sie Ihrem Projekt hinzufügen möchten. Wenn Sie beispielsweise Bibliotheksabhängigkeit auswählen, zeigt Android Studio eine Liste von Bibliotheken an, aus denen Sie auswählen können.

Nachdem Sie Ihre Abhängigkeit hinzugefügt haben, überprüfen Sie die build.gradle-Datei auf Modulebene. Es sollte automatisch aktualisiert worden sein, um die neue Abhängigkeit aufzunehmen.

Quelle


11
2018-04-03 06:32



Wenn Sie Zugriff auf die Ressourcen eines Bibliotheksprojekts benötigen (wie bei ABS), stellen Sie sicher, dass Sie das Bibliotheksprojekt / Modul als "Modulabhängigkeit" anstelle von "Bibliothek" hinzufügen.


8
2018-05-19 01:04



So funktioniert es für mich in Android Studio 1.5

In dem Projekt, in dem Sie ein externes Bibliotheksprojekt hinzufügen möchten, Gehe zum Menü Datei -> Neu -> * Neues Modul importieren **, navigieren Sie zu dem Bibliotheksprojekt, das Sie zu Ihrem Projekt hinzufügen möchten, wählen Sie, um das Modul 'Bibliothek' in Ihrem Projekt hinzuzufügen. Sie erhalten settings.gradle in deinen Projekten, neben der App, der enthaltenen Bibliothek, etwas in der Art:

include ':app', ':library'

Hinzufügen build.gradle (Modul: App) im Bereich Abhängigkeiten:

Projekt kompilieren (': Bibliothek')

Bauen Sie das Projekt neu auf und das war's.

* Sie können beliebig viele Bibliotheken (Module) hinzufügen. In diesem Fall haben Sie in den Einstellungen.

 include ':app', ':lib1', ':lib2', ...

Und in build.gradle, müssen Sie haben:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])

    // Some other dependencies...

    compile project(':lib1')
    compile project(':lib2')
    ...
}

8
2017-12-11 15:04



  1. Drücken Sie F4 zeigen Projektstruktur, klicken Sie auf Bibliotheken oder Globale Bibliotheken und klicken Sie auf + um die JAR-Datei hinzuzufügen.
  2. Klicken Sie auf Module, was Sie Glas hinzufügen möchten, wählen Sie die Abhängigkeiten Tab, klicken Sie auf +, und fügen Sie Bibliothek hinzu.

6
2018-05-16 13:26