Wie füge ich ein Bibliotheksprojekt (wie Sherlock ABS) zu Android-Studio ?
(Nicht zum alten ADT Eclipse-basierten Bundle, sondern zum neuen Android-Studio .)
Wie füge ich ein Bibliotheksprojekt (wie Sherlock ABS) zu Android-Studio ?
(Nicht zum alten ADT Eclipse-basierten Bundle, sondern zum neuen Android-Studio .)
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:
HelloWorld/ app/ - build.gradle // local Gradle configuration (for app only) ... - build.gradle // Global Gradle configuration (for whole project) - settings.gradle - gradle.properties ...
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)./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 ...
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'
で 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")
}
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']
}
}
}
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)
}
}
//...
Das ist alles. Klicken Sie einfach auf das Symbol "Projekt 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 ü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.
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'
Menü Datei -> Projektstruktur... :
Modul -> Modul importieren
Nachdem Sie das Bibliotheksmodul importiert haben, wählen Sie Ihr Projektmodul und fügen Sie die Abhängigkeit hinzu:
Und wählen Sie dann die importiertes Modul :
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).
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.
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):
In settings.gradle hinzufügen
include ':facebook'
project(':facebook').projectDir = new File(settingsDir, '../dependencies/FacebookSDK')
Fügen Sie im Abschnitt build.gradle dependencies
compile project ('facebook')
Jetzt muss nur noch das Projekt mit den gradle-Dateien synchronisiert werden.
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.