830 Stimmen

Wie kann ich ein Bibliotheksprojekt zu Android Studio hinzufügen?

Wie füge ich ein Bibliotheksprojekt (wie Sherlock ABS) zu Android-Studio ?

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

731voto

froger_mcs Punkte 13972

Aktualisierung für Android Studio 1.0

Seit der Veröffentlichung von Android Studio 1.0 (und einer Vielzahl von Versionen zwischen v1.0 und einer der ersten Versionen aus der Zeit meiner letzten Antwort) hat sich einiges 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 den Android Studio Creator hinzufügen möchten, überprüfen Sie einfach die Antwort unten mit visueller Anleitung (es gibt einige Unterschiede zwischen Android Studio 1.0 und denen aus den Screenshots, aber der Prozess ist sehr ähnlich).

Bevor Sie eine Bibliothek von Hand zu Ihrem Projekt hinzufügen, sollten Sie überlegen, ob Sie die externe Abhängigkeit hinzufügen wollen. Das wird Ihre Projektstruktur nicht durcheinander bringen. Fast jede bekannte Android-Bibliothek ist in einer Maven Repository und seine Installation erfordert nur eine Zeile Code in der app/build.gradle Datei:

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

Hinzufügen der Bibliothek

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

  1. Erstellen Sie ein neues Projekt mit dem Android Studio Creator. Ich habe es benannt HalloWelt .
  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 Wurzelverzeichnis ( HelloWorld/ ), erstellen Sie einen neuen Ordner: /libs in dem wir unsere externen Bibliotheken ablegen werden (dieser Schritt ist nicht erforderlich - nur um eine saubere Projektstruktur zu erhalten).
  2. Fügen Sie Ihre Bibliothek in das neu erstellte /libs Ordner. In diesem Beispiel habe ich PagerSlidingTabStrip-Bibliothek (einfach ZIP 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 zu include . Wenn Sie einen benutzerdefinierten Pfad verwenden, wie ich es tat, müssen Sie auch das Projektverzeichnis für unsere Bibliothek definieren. Eine vollständige settings.gradle sollte wie unten aussehen:

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

5.1 Wenn Sie die Fehlermeldung "Standardkonfiguration" erhalten, versuchen Sie dies anstelle von Schritt 5,

    include ':app'
    include ':libs:PagerSlidingTabStrip'
  1. app/build.gradle fügen Sie unser Bibliotheksprojekt als Abhängigkeitsbeziehung hinzu:

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

6.1. Wenn Sie Schritt 5.1 befolgt haben, folgen Sie diesem anstelle von Schritt 6,

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

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

         apply plugin: 'com.android.library'
    
         dependencies {
             implementation '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-Versionen für jedes Modul enthält, um Konsistenz zu gewährleisten. Einfach bearbeiten gradle.properties Datei und fügen Sie Zeilen hinzu:

     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 build.gradle Dateien (in den Modulen app und libraries) 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 das Symbol "Projekt mit Gradle synchronisieren". synchronise with Gradle . Ihre Bibliothek sollte in Ihrem Projekt verfügbar sein.

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

In Android Studio dreht sich alles um die Bearbeitung, das Debugging und die Profilerstellung. Es geht nicht mehr um das Erstellen.

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

275voto

Sam R. Punkte 15529

Hier ist der visuelle Leitfaden:

Update für Android Studio 0.8.2:

In Android Studio 0.8.2 gehen Sie zu Projektstruktur -> unter Module drücken Sie einfach die Plustaste und wählen Sie Vorhandenes Projekt importieren und importieren actionbarsherlock . Dann synchronisieren Sie Ihre Gradle-Dateien.

Wenn Sie den Fehler sehen

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

öffnen Sie einfach die build.gradle Datei in actionbarsherlock Verzeichnis und aktualisieren Sie die buildToolsVersion zum vorgeschlagenen.

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

Android Studio 0.8.2


Menü Datei -> Projektstruktur... :

First

Modul -> Modul importieren

Second

Nachdem Sie das Bibliotheksmodul importiert haben, wählen Sie Ihr Projektmodul und fügen Sie die Abhängigkeit hinzu:

Third

Und wählen Sie dann die importiertes Modul :

Forth

114voto

Blackbelt Punkte 153224

Menü verwenden Datei -> Projektstruktur -> Module .

Ich habe heute angefangen, es zu benutzen. Es ist ein bisschen anders.

Für Sherlock möchten Sie vielleicht das Testverzeichnis löschen oder die junit.jar Datei in den Klassenpfad aufnehmen.

Um die Bibliothek mit gradle zu importieren, müssen Sie sie zur dependencies Abschnitt Ihres build.gradle (die des Moduls).

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 verändert sich.

Es gibt einen Abschnitt namens "Moduleinstellungen öffnen", wenn Sie Rechtsklick auf einen Modulordner im Projektbereich von Android Studio (ich verwende die Version 0.2.10).

53voto

Jonathan Lin Punkte 18242

Ich würde in Betracht ziehen Abhängigkeiten, Android-Bibliotheken und projektübergreifende Einrichtung notwendige Lektüre. Bitte nehmen Sie sich ein paar Minuten Zeit dafür.

Insbesondere im Fall eines Nicht-Jar-Bibliotheks-Projekts lesen Sie den folgenden Ausschnitt aus obigem Quelltext:

Gradle-Projekte können auch von anderen Gradle-Projekten abhängen, indem sie eine Ein Multiprojekt-Setup funktioniert normalerweise so, dass alle Projekte als Unterordner eines bestimmten Root-Projekts angelegt werden.

Zum Beispiel in der folgenden Struktur:

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

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

:app
:libraries:lib1
:libraries:lib2

Jedes Projekt hat seine eigene build.gradle, die angibt, wie es gebaut wird. Zusätzlich wird es eine Datei namens settings.gradle im Stammverzeichnis geben, in der die Projekte deklariert werden. Daraus ergibt sich 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'

Damit wird festgelegt, welcher Ordner tatsächlich ein Gradle-Projekt ist.

Das :app-Projekt wird wahrscheinlich von den Bibliotheken abhängen, und dies wird durch die Deklaration der folgenden Abhängigkeiten erreicht:

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

Bitte beachten Sie, dass die Android Studio GUI kaum oder gar nicht verwendet wurde, um dies zu erreichen.

Ich verwende derzeit Git-Submodule um die verschachtelte Bibliothek mit dem eigentlichen Bibliotheks-Git-Repository zu verknüpfen, um ein Abhängigkeitschaos zu vermeiden.

18voto

Vilen Punkte 5031

Der einfachste Weg, den ich gefunden habe, um ein externes Bibliotheksprojekt einzubinden, ist (zum Beispiel, um eine Facebook-Bibliothek einzubinden, die ein Verzeichnis weiter oben im Abhängigkeitsordner 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 dependencies

    compile project ('facebook')

Jetzt muss nur noch das Projekt mit den gradle-Dateien synchronisiert werden.

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