Wie füge ich Android Studio ein Bibliotheksprojekt hinzu?

796

Wie füge ich Android Studio ein Bibliotheksprojekt (z. B. Sherlock ABS) hinzu ?

(Nicht für das alte ADT Eclipse-basierte Bundle, sondern für das neue Android Studio .)

Alexander Kulyakhtin
quelle
28
Ja, das herauszufinden war viel verwirrender, als es hätte sein sollen ... nicht so, als wäre es in Eclipse besser.
Daniel Smith
4
Das YouTube-Video zum Hinzufügen von Bibliotheken zu Android Studio erläutert den Vorgang.
2
Wenn Sie verwenden Gradle, lesen Sie diese StackOverflow-Antwort .
Craned
2
Hier ist ein Video, das ich als sehr nützlich empfand
Simon

Antworten:

718

Update für Android Studio 1.0

Seit der Veröffentlichung von Android Studio 1.0 (und vielen Versionen zwischen v1.0 und einer der ersten Versionen aus der Zeit meiner vorherigen Antwort) haben sich einige Dinge geändert.

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

Bevor Sie Ihrem Projekt manuell eine Bibliothek hinzufügen, sollten Sie die externe Abhängigkeit hinzufügen. Es wird Ihre Projektstruktur nicht durcheinander bringen. Fast jede bekannte Android-Bibliothek ist in einem Maven- Repository verfügbar, und für die Installation wird nur eine Codezeile in der app/build.gradleDatei benötigt:

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

Hinzufügen der Bibliothek

Hier ist der vollständige Vorgang zum Hinzufügen einer externen Android-Bibliothek zu unserem Projekt:

  1. Erstellen Sie ein neues Projekt über Android Studio Creator. Ich habe es HelloWorld genannt .
  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. HelloWorld/Erstellen Sie im Stammverzeichnis ( ) einen neuen Ordner, /libsin dem wir unsere externen Bibliotheken ablegen (dieser Schritt ist nicht erforderlich - nur, um eine sauberere Projektstruktur zu erhalten).
  2. Fügen Sie Ihre Bibliothek in den neu erstellten /libsOrdner ein. In diesem Beispiel habe ich die PagerSlidingTabStrip-Bibliothek verwendet (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 hinzufügen include. Wenn Sie wie ich einen benutzerdefinierten Pfad verwenden, müssen Sie auch das Projektverzeichnis für unsere Bibliothek definieren. Ein ganzes 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. In app/build.gradleunserer Bibliothek Projekt 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 befolgt haben, 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 keine build.gradleDatei enthält, müssen Sie diese 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. Darüber hinaus können Sie eine globale Konfiguration für Ihr Projekt erstellen, die SDK-Versionen enthält und für jedes Modul eine Toolversion erstellt, um die Konsistenz zu gewährleisten. Bearbeiten Sie einfach die gradle.propertiesDatei 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 Ihren build.gradleDateien (in App- und Bibliotheksmodulen) wie folgt verwenden:

    //...
    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 "Projekt mit dem Gradle synchronisieren" -Symbol mit Gradle synchronisieren. 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 zum Erstellen von Android-Apps mit Gradle Build System: Wie Xavier Ducrohet sagte:

In Android Studio dreht sich alles um das Bearbeiten, Debuggen und Profilieren. Es geht nicht mehr darum zu bauen.

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

froger_mcs
quelle
6
Hey, du hast das eigentliche Problem perfekt erklärt. Stimmen Sie Ihre Antwort ab, damit andere sie sehen können. Eine Kleinigkeit, die auf meiner Seite nicht funktioniert hat, ist das Verweisen auf die Support-Bibliothek im build.gradle der Abhängigkeit. Wie sich herausstellt, hat ': Project / libs ...' aus irgendeinem Grund nicht funktioniert. Ich musste die Projektidentifikation abschaffen. also 'libs / ...'. und es hat gut kompiliert. Ein Hinweis ist, dass diese beiden Arten der Referenzierung von Pfaden oder Projekten verwirrend sind. Ich hoffe, dass in Zukunft ein einfaches und einheitliches Schema entsteht. Es gibt keinen Grund, warum die ursprüngliche Lösung nicht funktionieren würde.
Sieger n.
9
+1. Ich hatte lange damit zu kämpfen. Wie Victor N sagte, funktioniert das Verweisen auf das Support-JAR des Hauptprojekts vom Actionbarsherlock-Modul nicht. Ich musste Folgendes tun, damit es funktioniert ... (1) Entfernen Sie Kompilierungsdateien ('libs / android-support-v4.jar') aus dem build.gradle des Projekts. Das Hauptmodul sollte nur ein Kompilierungsprojekt haben (": library: actionbarsherlock") . (2) Fügen Sie Kompilierungsdateien ('libs / android-support-v4.jar') anstelle von Kompilierungsdateien (': HelloWorld / libs / android-support-v4.jar') in build.gradle von actionbarsherlock hinzu.
Akbar ibrahim
3
Wo ist Global libraries(# 10: "Jetzt zu globalen Bibliotheken gehen")? Davon abgesehen funktioniert es wie beschrieben :) Vielen Dank. (Ich hoffe, Google wird es schaffen - eine so einfache Aufgabe ist im Moment sehr komplex)
Konrad Morawski
8
Warum habe ich keinen Abschnitt "Modul importieren" bei der Option, an die Sie uns weiterleiten? Ich benutze Android Studio 0.3.1
Alicanbatur
5
Die Option "Modul importieren" fehlt !!
AmalBit
274

Hier ist die visuelle Anleitung:

Update für Android Studio 0.8.2:

Gehen Sie in Android Studio 0.8.2 zu Projektstruktur -> unter Module, klicken Sie einfach auf die Plus-Schaltfläche und wählen Sie Vorhandenes Projekt importieren und importieren actionbarsherlock. Synchronisieren Sie dann Ihre Gradle-Dateien.

Wenn Sie mit dem Fehler konfrontiert sind

Fehler: Die Revision der SDK Build Tools (xx.xx) ist zu niedrig. Das erforderliche Minimum ist JJJJ

Öffnen Sie einfach die build.gradleDatei im actionbarsherlockVerzeichnis und aktualisieren Sie sie buildToolsVersionauf die vorgeschlagene.

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

Android Studio 0.8.2


Menü Datei -> Projektstruktur ... :

Zuerst

Modul -> Modul importieren

Zweite

Wählen Sie nach dem Importieren des Bibliotheksmoduls Ihr Projektmodul aus und fügen Sie die Abhängigkeit hinzu:

Dritte

Und wählen Sie dann das importierte Modul aus :

Viertens

Sam Rad
quelle
31
Importmodul Option nicht verfügbar in Android Studio4.3
amalBit
3
Der Schlüssel für mich, damit dies funktioniert und die nicht gefundenen Select your project module and add dependency dependencies { // ... compile project(':library') }
Paketfehler behoben
7
Dadurch wird das Bibliotheksmodul in Ihr Projekt kopiert. Dies ist nicht das, was Sie möchten, wenn Sie eine gemeinsame Codebasis wünschen, die von mehreren Projekten gemeinsam genutzt wird
Rémy DAVID,
@amalBit sind ... bist du aus der Zukunft? Aber im Ernst, sie müssen dies so einfach machen, wie es in Eclipse ADT war. Wer möchte ein Repo eines Drittanbieters erstellen und (möglicherweise) beliebigen Code in jeden Build kompilieren? Das untergräbt ernsthaft die QS- und Code-Freeze-Protokolle
CCJ
Es war vor langer Zeit während der Beta-Tage von Android Studio 0.4.3. Was das Repo von Drittanbietern betrifft, vermeiden Sie die Verwendung von +. Geben Sie einfach die gewünschte Version an. Wenn Sie ihm immer noch nicht genug vertrauen können, können Sie ein Glas (oder einen Klon) eines beliebigen Repos erstellen und es verwenden.
AmalBit
111

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

Ich habe heute damit angefangen. Es ist ein bisschen anders.

Für Sherlock möchten Sie möglicherweise das Testverzeichnis löschen oder die junit.jarDatei zum Klassenpfad hinzufügen .

Um die Bibliothek mit gradle zu importieren, müssen Sie sie möglicherweise zu dependenciesIhrem Abschnitt build.gradle(dem des Moduls) hinzufügen .

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 mit der rechten Maustaste auf einen Modulordner im Projektabschnitt von Android Studio klicken (ich verwende die Version 0.2.10).

Schwarzer Gürtel
quelle
1
Hmm, es steht immer noch android-apt-compiler: styles.xml: 5: Fehler: Fehler beim Abrufen des übergeordneten Elements für das Element: Es wurde keine Ressource gefunden, die dem angegebenen Namen 'Theme.Sherlock.Light.DarkActionBar' entspricht.
Alexander Kulyakhtin
Unter dem Sherlock-Modul -> Abhängigkeiten habe ich Android 4.2.2 und die Support-Bibliothek v4
Blackbelt
@ ρяσsρєяK neben dem Run-Button gibt es ein Label mit Android. Wenn Sie dort klicken, finden Sie Konfiguration bearbeiten. Drücken Sie und klicken Sie unter Zielgerät auf "Show Chooser Dialg"
Blackbelt
7
Hallo, ich habe das gleiche Problem wie Alex ("Gradle: Fehler beim Abrufen des übergeordneten Elements für das Element: Keine Ressource gefunden, die dem angegebenen Namen 'Theme.Sherlock.Light' entspricht.") - Die Java-Abhängigkeit scheint korrekt gelöst zu sein IDE macht meine SherlockActivity nicht dafür verantwortlich, aber aus irgendeinem Grund scheint Gradle die Ressourcen von ABS nicht zu untersuchen. Irgendwelche Ideen?
Fisch
4
Unter Android Studio 0.2.8 gibt es keinen ModulesAbschnitt im Project StructureFenster.
Konrad Morawski
52

Ich würde Abhängigkeiten, Android-Bibliotheken und die Einrichtung mehrerer Projekte als notwendige Lektüre betrachten. Bitte nehmen Sie sich dazu ein paar Minuten Zeit.

Lesen Sie insbesondere im Fall eines Bibliotheksprojekts ohne JAR den folgenden Ausschnitt aus der obigen Quelle:

Gradle-Projekte können mithilfe eines Multi-Projekt-Setups auch von anderen Gradle-Projekten abhängen. Bei einer Einrichtung mit mehreren Projekten werden normalerweise alle Projekte als Unterordner eines bestimmten Stammprojekts verwendet.

Zum Beispiel zu folgender 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 ein eigenes build.gradle, das angibt, wie es erstellt wird. Zusätzlich befindet sich im Stammverzeichnis eine Datei mit dem Namen settings.gradle, in der die Projekte deklariert werden. 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 tatsächlich ein Gradle-Projekt ist.

Das: app-Projekt hängt wahrscheinlich von den Bibliotheken ab. Dazu werden die folgenden Abhängigkeiten deklariert:

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

Bitte beachten Sie, dass die Android Studio-Benutzeroberfläche nur wenig oder gar nicht verwendet wurde, um dies zu erreichen.

Ich verwende derzeit Git-Submodule , um die verschachtelte Bibliothek mit dem tatsächlichen Git-Repo der Bibliothek zu verknüpfen, um ein Abhängigkeits-Chaos zu vermeiden.

Jonathan Lin
quelle
Sehr hilfreich und vor allem nicht nach den Gui-Launen des Tages zu spielen.
RichieHH
1
Vielen Dank, dass Sie die einzige sinnvolle Antwort aufgenommen haben. Jede andere Antwort ist veraltet und funktioniert einfach nicht. Ich habe es nicht einmal in CS bei Virginia Tech versucht, weil ich in den ersten zwei Jahren gelernt habe, in Eclipse herumzuklicken. es ergab keinen fckn Sinn, aber das Gradle- Ergebnis von zufälligen Klicks in einer IDE zu sehen, tut es.
dcunited001
Danke für den Tipp zu den Git-Submodulen. Ich habe früher Junction verwendet, bin jetzt aber auf SVN-Externals umgestiegen. Klappt wunderbar.
Velis
25

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. Menü Datei -> Neues Modul ... :

    Vorhandenes Projekt importieren

    Klicken Sie auf "Vorhandenes Projekt importieren".

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

  3. Klicken Sie auf Fertig stellen. Android Studio importiert die Bibliothek in Ihr Projekt. Gradle-Dateien werden synchronisiert.

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

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

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

    Bibliotheksmodul hinzufügen

  5. ???

  6. Profitieren

René Michel
quelle
17

Der einfachste Weg, ein externes Bibliotheksprojekt einzuschließen, ist (zum Beispiel eine Facebook-Bibliothek einzuschließen, die ein Verzeichnis 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-Abhängigkeiten hinzu

    compile project ('facebook')

Sie müssen das Projekt nur noch mit Gradle-Dateien synchronisieren.

Vilen
quelle
Hallo Vilen, was ist EinstellungenDir hier
Rajnish Mishra
Hallo Rajnish. Aus der Dokumentation: settingsDir Gibt das Einstellungsverzeichnis des Builds zurück. Das Einstellungsverzeichnis ist das Verzeichnis, das die Einstellungsdatei enthält. Rückgabe: Das Einstellungsverzeichnis. Gibt niemals null zurück.
Vilen
Die zwei Punkte vor / Abhängigkeiten sind wichtiger, um gepflegt zu werden. Ihre Antwort hilft mir sehr. Danke
Rajnish Mishra
HINWEIS: Für die String-Auswertung in Gradle müssen Sie ein doppeltes Anführungszeichen (") verwenden. Dies ist" Save the Day "für mich. Verknüpft damit
Solata
15

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

a) Kopieren Sie Ihre * .jar-Dateien

b) Fügen Sie in das libs- Verzeichnis unter Ihren Projekten ein:

Geben Sie hier die Bildbeschreibung ein

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 hat , überprüft Android Studio Ihren Build und erstellt alle erforderlichen Änderungen in Ihrem Projekt. Danach können Sie diese Einstellungen im Menü Datei -> Projektstruktur überprüfen .

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

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

Eugene Bosikov
quelle
12

Option 1: Dateien in das libs / -Verzeichnis von Project ablegen

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

Option 2: Ändern Sie die Datei build.gradle manuell

Öffnen Sie Ihre Datei build.gradle und fügen Sie dem Schließen der Abhängigkeiten eine neue Erstellungsregel hinzu. Wenn Sie beispielsweise Google Play Services hinzufügen möchten, sieht der Abschnitt "Abhängigkeiten" Ihres Projekts ungefähr 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

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

Geben Sie hier die Bildbeschreibung ein

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 auswä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.

Überprüfen Sie nach dem Hinzufügen Ihrer Abhängigkeit die Datei build.gradle auf Modulebene. Es sollte automatisch aktualisiert worden sein, um die neue Abhängigkeit aufzunehmen.

Quelle

pathe.kiran
quelle
10

So funktioniert es bei mir in Android Studio 1.5+

Gehen Sie in dem Projekt, in dem Sie ein externes Bibliotheksprojekt hinzufügen möchten, zum Menü Datei -> Neu -> * Neues Modul importieren **, navigieren Sie zu dem Bibliotheksprojekt, das Sie Ihrem Projekt hinzufügen möchten, und wählen Sie, um das Modul 'Bibliothek' hinzuzufügen dein Projekt. Sie erhalten settings.gradle in Ihren Projekten neben der App, der enthaltenen Bibliothek, ungefähr so:

include ':app', ':library'

Fügen Sie build.gradle (Modul: App) im Abschnitt Abhängigkeiten hinzu:

Projekt kompilieren (': Bibliothek')

Erstellen Sie das Projekt neu und fertig.

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

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

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

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

    // Some other dependencies...

    compile project(':lib1')
    compile project(':lib2')
    ...
}
Pandabear
quelle
9

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 einer "Bibliothek" hinzufügen.

drawan50
quelle
9

Sie können dies leicht tun. Gehen Sie zum Menü Datei -> Neu -> Modul importieren ... :

Geben Sie hier die Bildbeschreibung ein

Suchen Sie nach dem Verzeichnis, das das Modul enthält. Klicken Sie auf Fertig stellen:

Geben Sie hier die Bildbeschreibung ein

Gehen Sie zur Projektstruktur und fügen Sie die Modulabhängigkeit hinzu :

Geben Sie hier die Bildbeschreibung ein

Hinweis: Wenn Sie einen SDK-Fehler erhalten, aktualisieren Sie diesen.

Adiii
quelle
1
Meiner Meinung nach der einfachste und schnellste Weg, der bis heute funktioniert hat!
Mrj
8
  1. Drücken Sie F4, um die Projektstruktur anzuzeigen , klicken Sie auf Bibliotheken oder Globale Bibliotheken und klicken Sie +, um die JAR-Datei hinzuzufügen.
  2. Klicken Sie auf Module, die Sie hinzufügen möchten, wählen Sie die Registerkarte Abhängigkeiten aus , klicken Sie auf +und fügen Sie Bibliothek hinzu.
Crossle Song
quelle
6

Das Bearbeiten von Bibliotheksabhängigkeiten über die GUI ist nicht ratsam, da diese Änderungen nicht in Ihre build.gradle-Datei geschrieben werden. Ihr Projekt wird also nicht über die Befehlszeile erstellt. Wir sollten die build.gradle-Datei direkt wie folgt bearbeiten.

Zum Beispiel zu folgender Struktur gegeben:

Mein Projekt/

  • App /
  • Bibliotheken /
    • lib1 /
    • lib2 /

Wir können drei Projekte identifizieren. Gradle wird sie mit den folgenden Namen referenzieren:

  1. : App
  2. : Bibliotheken: lib1
  3. : Bibliotheken: lib2

Das: app-Projekt hängt wahrscheinlich von den Bibliotheken ab. Dazu werden die folgenden Abhängigkeiten deklariert:

dependencies {
    compile project(':libraries:lib1')
}
Shakti Malik
quelle
"Ja wirklich?" Seltsam, sie haben die gesamte GUI und doch ist es nicht ratsam. Wie das?
Alexander Kulyakhtin
Da das Bearbeiten über die GUI diese Änderungen nicht in Ihre build.gradle-Datei schreibt. Die GUI-Bearbeitung speichert nur Änderungen in den eigenen Projektdaten von IntelliJ. Dies ist derzeit ein Fehler, der in zukünftigen Versionen behoben wird. Sie können auf diese Antwort von Google Android-Studio Teamleiter stackoverflow.com/questions/16678447/…
Shakti Malik
5

So fügen Sie der Antwort hinzu: Wenn die IDE keinen Fehler anzeigt, Sie jedoch beim Kompilieren versuchen, erhalten Sie Folgendes:

No resource found that matches the given name 'Theme.Sherlock.Light'

Ihr Bibliotheksprojekt wird wahrscheinlich als Anwendungsprojekt kompiliert. Um dies zu ändern, gehen Sie zu:

Menü Datei -> Projektstruktur -> Facetten -> [Bibliotheksname] -> Aktivieren Sie "Bibliotheksmodul".

Dalmas
quelle
5

Erster Weg Dies funktioniert für MacBook.

Wählen Sie zuerst Ihre builder.gradle-Datei wie auf dem Bildschirm gezeigt aus:

Geben Sie hier die Bildbeschreibung ein

Fügen Sie Abhängigkeiten wie auf dem ausgewählten Bildschirm hinzu:

Geben Sie hier die Bildbeschreibung ein

Wählen Sie Synchronisierungsprojekt.

Wenn Sie eine Fehlermeldung wie "Projekt mit Pfad ': Signatur-Pad' wurde in Projekt ': App' nicht gefunden" erhalten, verwenden Sie bitte den zweiten Weg:

Wählen Sie das Menü Datei -> Neu -> Modul importieren ... :

Geben Sie hier die Bildbeschreibung ein

Nachdem Sie auf Modul importieren geklickt haben ,

Geben Sie hier die Bildbeschreibung ein

Geben Sie den Pfad der Bibliothek wie meinen MacBook-Pfad an:

Geben Sie hier die Bildbeschreibung ein

Klicken Sie auf Fertig stellen . Jetzt wird Ihre Bibliothek hinzugefügt.

Hemant
quelle
4

Nachdem ich das ABS-Modul (über Datei> Projektstruktur) importiert und sichergestellt habe, dass es Android 2.2 und Support Library v4 als Abhängigkeiten enthält, wurde als @Alex immer noch der folgende Fehler angezeigt

Error retrieving parent for item: No resource found that matches the given name 'Theme.Sherlock.Light.DarkActionBar'

Ich habe das neu importierte Modul als Abhängigkeit zu meinem Haupt-App-Modul hinzugefügt, wodurch das Problem behoben wurde.

Erwan
quelle
Ich habe alle Schritte ausprobiert, einschließlich des Hinzufügens des Moduls als Abhängigkeit, aber ich habe es immer noch Gradle: Error retrieving parent for item: No resource found that matches the given name 'Theme.Sherlock.Light'.. Es scheint, dass mein Hauptprojekt die Ressourcen des Bibliotheksprojekts (ABS) nicht sieht. Die IDE erkennt jedoch die Verweise auf Klassen und Ressourcen. Screenshot
christiaanderidder
Ich migriere von 12 auf IDEA 13 und habe auch diesen Fehler. Nur ein erneuter Import für alle meine Abhängigkeiten hilft. Entfernen Sie manuell alle Module, entfernen Sie verwandte * .iml-Dateien und importieren Sie Ihre Bibliotheken erneut
Dmitriy Tarasov
4

Android Studio 3.0

Fügen Sie einfach den Bibliotheksnamen zum Abhängigkeitsblock der build.gradle- Datei Ihrer App hinzu .

dependencies {
    // ...
    implementation 'com.example:some-library:1.0.0'
}

Beachten Sie, dass Sie implementationeher als compilejetzt verwenden sollten. Dies ist neu in Android Studio 3.0. In diesen Fragen und Antworten finden Sie eine Erklärung des Unterschieds.

Suragch
quelle
Es handelt sich tatsächlich um eine Änderung in Gradle 4, nicht in Android Studio 3. Sie können weiterhin com.android.tools.build:gradle:2.3.3anstelle von 3.0.0 in Android Studio 3 verwenden, wenn Sie "compile" weiterhin verwenden möchten.
Chauduyphanvu
3

Um dieses Problem zu beheben, müssen Sie lediglich den abs-Ressourcenpfad zu Ihrer Projekterstellungsdatei hinzufügen, wie folgt:

sourceSets {
    main {
        res.srcDirs = ['src/main/res','../../ActionBarSherlock/actionbarsherlock/res']
    }
}

Also kompiliere ich wieder fehlerfrei.

azh
quelle
3

Wenn Sie Android Studio .0.4.0 haben, können Sie einen neuen Ordner in Ihrem Erstellungspfad erstellen YourApp/libraries. Kopieren Sie die JAR-Datei. Klicken Sie dort mit der rechten Maustaste darauf und klicken Sie auf "Als Bibliothek hinzufügen". Jetzt hast du ein Popup. Wählen Sie einfach Ihr Verzeichnis aus und drücken Sie OK.

Braunster
quelle
3

Importieren Sie einfach das Android-Bibliotheksprojekt als Modul und in Build.gradle .

Plugin anwenden: 'com.android.library'

Führen Sie danach die folgenden Schritte aus:

  1. Klicken Sie mit der rechten Maustaste auf Modul und wählen Sie Öffnen der Moduleinstellungen
  2. Wählen Sie Abhängigkeiten aus, klicken Sie auf +, wählen Sie Bibliotheksabhängigkeiten aus und fügen Sie das zuvor importierte Modul hinzu.
Pankaj Kumar
quelle
2

Ich habe die Lösung gefunden. Es ist so einfach. Folgen Sie den Anweisungen von froger_mcs .

Stellen Sie sicher, dass Sie den Ordner src unter Projektstruktur -> Module (Quellen) zu einem Quellordner machen.

Geben Sie hier die Bildbeschreibung ein

passsy
quelle
2

Grundsätzlich können Sie Ihre JAR-Dateien auf drei verschiedene Arten einbinden. Die letzte ist eine Remote-Bibliothek, die das Online-Repository https://bintray.com/jcenter verwendet. Wenn Sie dies jedoch auf eine der beiden anderen Arten tun, wird die JAR-Datei physisch in Ihr Projekt aufgenommen. Bitte lesen Sie diesen Link https://stackoverflow.com/a/35369267/5475941 für weitere Informationen. In diesem Beitrag habe ich erklärt, wie Sie Ihre JAR-Datei in Android Studio importieren und alle möglichen Möglichkeiten erläutern.

Zusammenfassend gesagt, wenn es so ist (lokale Adresse), werden sie heruntergeladen und diese JAR-Dateien befinden sich physisch im Projekt:

Geben Sie hier die Bildbeschreibung ein

Wenn es sich jedoch um eine Internetadresse wie diese handelt, handelt es sich um Remote-Bibliotheken (bintray.com jcenter part), die remote verwendet werden:

Geben Sie hier die Bildbeschreibung ein

Ich hoffe, es hilft.

Mohammad
quelle
2

Öffnen Sie die App-Datei des Build Gradle-Moduls und fügen Sie Ihre Abhängigkeit hinzu. Wenn Sie die Bibliothek herunterladen, importieren Sie sie einfach und erstellen Sie sie als Gradle.

Andernfalls fügen Sie Repositorys in der Side Gradle Module App hinzu:

repositories {
        maven { url 'http://clinker.47deg.com/nexus/content/groups/public' }
}

Die ersten Repositorys laden die Bibliothek für Sie herunter.

Und kompilieren Sie die heruntergeladene Bibliothek:

 compile ('com.fortysevendeg.swipelistview:swipelistview:1.0-SNAPSHOT@aar') {
        transitive = true
    }

Wenn Sie eine Bibliothek erstellen, müssen Sie das Projekt nur als neues Modul importieren importieren.

Jinu
quelle
2

Ich hatte eine andere Ursache für das Problem, also für die Leute:

repositories {
    mavenCentral()
}

Ändern Sie mavenCentral () in jcenter () und fügen Sie hinzu

allprojects {
    repositories {
        jcenter()
    }
}
jobbert
quelle
1

Wechseln Sie in Android Studio in den App-Ordner und öffnen Sie die Datei build.gradle. Hier sehen Sie Abhängigkeiten {}. Darin können Sie das Bibliotheksprojekt hinzufügen und synchronisieren. Nachdem Sie die Bibliothek synchronisiert haben, wird sie Ihrem Projekt hinzugefügt, und Sie können ihre Funktionen und Klassen in Ihrem Projekt verwenden.

Dharmendra Pratap
quelle
1

Für Android Studio:

Geben Sie hier die Bildbeschreibung ein

Klicken Sie auf Build.gradle (Modul: App) .

Und hinzufügen für

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile files('libs/commons-io-2.4.jar')
}

und erstellen Sie in Ihrem Verzeichnis "app" ein Verzeichnis "libs". Fügen Sie die Datei yourfile.jar hinzu:

Geben Sie hier die Bildbeschreibung ein

Kompilieren Sie abschließend die Gradle-Dateien:

Geben Sie hier die Bildbeschreibung ein

MAMASSI
quelle
0

Ich bin auch auf das gleiche Problem gestoßen, als ich folgende Dinge getan habe.

  1. Ich importiere das Bibliotheksprojekt über das Menü Datei -> Modulmenüs in meine AndroidStudio-IDE als Modul

  2. Dann ging ich zu meinem Hauptmodul, in dem ich das Bibliotheksprojekt als abhängiges Projekt haben möchte

  3. Klicken Sie mit der rechten Maustaste auf das Hauptmodul (in meinem Fall heißt es App ) -> Moduleinstellung öffnen -> Gehen Sie zur Registerkarte Abhängigkeiten -> Klicken Sie auf die Schaltfläche + (Sie erhalten es auf der rechten Seite des Fensters) -> Klicken Sie auf Modulabhängigkeit - > Wählen Sie Ihr Bibliotheksprojekt aus der Liste aus

Übernehmen Sie die Änderungen und klicken Sie auf die OKSchaltfläche.

Es hat bei mir funktioniert. Ich hoffe es wird auch anderen helfen.

Android ist alles für mich
quelle
0

Fügen Sie dies in Ihre Build-Gradle-Datei ein:

 dependencies {
     implementation 'com.jakewharton:butterknife:9.0.0'
}
Lalit Baghel
quelle
-1

Wenn sich die Versionen ändern, ändern sich auch die Benutzeroberfläche und die im Menü verfügbaren Optionen. Nachdem ich die meisten Antworten auf diese Fragen gelesen hatte, musste ich raten, was für Android Studio 1.1.0 funktionieren würde .

  1. Wählen Sie mit der Maus das Projekt auf der Hauptebene aus (hier wird der Name Ihrer App angezeigt).

  2. Klicken Sie mit der rechten Maustaste und wählen Sie die Menüoptionen Neu, Ordner, Assets-Ordner .

  3. Fügen Sie nach dem Erstellen des Assets-Ordners die für Ihre Bibliothek erforderliche JAR-Datei ein oder kopieren Sie sie.

  4. Wählen Sie im Hauptmenü von Android Studio (oben auf dem Bildschirm) Datei -> Projektstruktur .

  5. Wählen Sie dann Ihren Projektnamen aus und wechseln Sie zur Registerkarte Abhängigkeiten .

  6. Klicken Sie auf das Pluszeichen ( +) unten links im Dialogfeld und wählen Sie die Dateiabhängigkeit aus.

  7. Öffnen Sie schließlich den zuletzt erstellten Assets-Ordner, wählen Sie die kopierten JAR-Dateien aus und klicken Sie dann auf Übernehmen und OK.

Bereinigen und erstellen Sie Ihr Projekt neu.

monn3t
quelle
1
Das Erstellen von Kopien von Gläsern in Assets ist keine gute Idee, da dies die Apk-Größe unnötig erhöhen wird
Rajnish Mishra
Vielen Dank für den Rat @RajnishMishra. Ich habe das vermutet, aber was schlagen Sie stattdessen vor?
Montag,