Ich bin neu im Gradle Build System und IntelliJ.
Wie erstelle ich ein Android-Bibliotheksprojekt (z. B. com.myapp.lib1) und das Anwendungsprojekt (z. B. com.myapp.app) und lasse das Build-System com.myapp.lib1 in das Anwendungsprojekt aufnehmen?
Ich ging zu Projektstruktur -> Module -> Mein App-Projekt und fügte dem lib-Projekt eine Abhängigkeit hinzu. IntelliJ kann jetzt Klassen aus dem lib-Projekt erkennen, wenn sie im App-Projekt verwendet werden. Wenn ich das App-Projekt ausführe, treten jedoch folgende Fehler auf:
Gradle: error: package com.myapp.lib1 does not exist
android-studio
Randy Sugianto 'Yuku'
quelle
quelle
Antworten:
So erstellen Sie eine Bibliothek:
Datei> Neues Modul
Wählen Sie Android Library
Um die Bibliothek zu verwenden, fügen Sie sie als Abhängigkeit hinzu:
Datei> Projektstruktur> Module> Abhängigkeiten
Fügen Sie dann das Modul (Android-Bibliothek) als Modulabhängigkeit hinzu.
Führen Sie Ihr Projekt aus. Es wird funktionieren.
quelle
Ich frage mich, warum es kein Beispiel für ein eigenständiges Glasprojekt gibt.
In Eclipse aktivieren wir einfach das Kontrollkästchen "Ist Bibliothek" im Dialogfeld "Projekteinstellungen".
In Android Studio habe ich diese Schritte ausgeführt und eine JAR-Datei erhalten.
Erstellen Sie ein Projekt.
Öffnen Sie die Datei im linken Projektmenü. (app / build.gradle): Gradle Scripts> build.gradle (Modul: XXX)
Ändern Sie eine Zeile:
apply plugin: 'com.android.application'
->'apply plugin: com.android.library'
Entfernen Sie die Anwendungs-ID in der Datei:
applicationId "com.mycompany.testproject"
Projekt erstellen: Erstellen> Projekt neu erstellen
dann können Sie aar-Datei erhalten: app> build> output> aar-Ordner
Ändern Sie den
aar
Namen der Dateierweiterung inzip
entpacken, und Sie können
classes.jar
im Ordner sehen. umbenennen und verwenden!Wie auch immer, ich weiß nicht, warum Google die Erstellung von JARs in Android Studio so mühsam macht.
quelle
Das vom Google Gradle Plugin empfohlene Verfahren zum Konfigurieren Ihrer Gradle-Dateien zum Erstellen mehrerer Projekte weist einige Mängel auf. Wenn Sie abhängig von einem Bibliotheksprojekt mehrere Projekte haben, werden in diesem Beitrag die von Google empfohlene Konfiguration und seine Mängel kurz erläutert und eine andere Methode zum Konfigurieren Ihrer Gradle-Dateien empfohlen Unterstützung von Multi-Projekt-Setups in Android Studio:
Ein alternatives Multiprojekt-Setup für Android Studio
Ein anderer Weg :
Es stellt sich heraus, dass es eine bessere Möglichkeit gibt, mehrere Projekte in Android Studio zu verwalten. Der Trick besteht darin, separate Android Studio-Projekte für Ihre Bibliotheken zu erstellen und gradle mitzuteilen, dass sich das Modul für die Bibliothek, von der Ihre App abhängt, im Projektverzeichnis der Bibliothek befindet. Wenn Sie diese Methode mit der oben beschriebenen Projektstruktur verwenden möchten, gehen Sie wie folgt vor:
Der 4. Schritt ist der schwierige Teil, daher ist dies der einzige Schritt, den ich im Detail beschreiben werde. Sie können auf Module verweisen, die sich außerhalb des Projektverzeichnisses befinden, indem Sie eine Projektanweisung in Ihre Datei settings.gradle einfügen und die Eigenschaft projectDir für das ProjectDescriptor-Objekt festlegen, das von dieser Projektanweisung zurückgegeben wird:
Der Code, den man eingeben muss
settings.gradle
:Wenn Sie dies richtig gemacht haben, werden Sie feststellen, dass die Module, auf die Ihr Projekt verweist, im Projektnavigator angezeigt werden, auch wenn sich diese Module außerhalb des Projektverzeichnisses befinden:
Auf diese Weise können Sie gleichzeitig an Bibliothekscode und App-Code arbeiten. Die Integration der Versionskontrolle funktioniert auch einwandfrei, wenn Sie Module auf diese Weise extern referenzieren. Sie können Ihre Änderungen am Bibliothekscode festschreiben und übertragen, genauso wie Sie Änderungen an Ihrem App-Code festschreiben und übertragen können.
Durch diese Art der Einrichtung mehrerer Projekte werden die Schwierigkeiten vermieden, die die von Google empfohlene Konfiguration betreffen. Da wir auf ein Modul verweisen, das sich außerhalb des Projektverzeichnisses befindet, müssen wir nicht für jede App, die davon abhängt, zusätzliche Kopien des Bibliotheksmoduls erstellen, und wir können unsere Bibliotheken ohne Unsinn eines Git-Submoduls versionieren.
Leider ist diese andere Art, mehrere Projekte einzurichten, sehr schwer zu finden. Dies können Sie natürlich nicht anhand des Google-Handbuchs herausfinden. Derzeit können Sie Ihre Projekte nicht über die Benutzeroberfläche von Android Studio auf diese Weise konfigurieren.
quelle
Schauen Sie sich diesen Link zu Multi-Projekt-Setups an .
Stellen Sie sicher, dass Sie Ihre settings.gradle aktualisiert haben, um sowohl auf die App- als auch auf die Bibliotheksmodule zu verweisen.
settings.gradle:
include ':app', ':libraries:lib1', ':libraries:lib2'
Stellen Sie außerdem sicher, dass build.gradle der App Folgendes enthält:
Sie sollten die folgende Struktur haben:
Das build.gradle der App sollte das
com.android.application
Plugin verwenden, während das build.gradle aller Bibliotheken dascom.android.library
Plugin verwenden sollte.Die Android Studio-IDE sollte aktualisiert werden, wenn Sie mit diesem Setup über die Befehlszeile erstellen können.
quelle
Für Intellij IDEA (und Android Studio) ist jede Bibliothek ein Modul. Stellen Sie sich ein Modul in Android Studio als Äquivalent zu einem Projekt in Eclipse vor. Das Projekt in Android Studio ist eine Sammlung von Modulen. Module können ausführbare Anwendungen oder Bibliotheksmodule sein.
Um ein neues Android-Bibliotheksprojekt hinzuzufügen, müssen Sie ein Modul vom Typ "Android-Bibliothek" erstellen. Fügen Sie dann dieses Bibliotheksmodul zur Abhängigkeitsliste Ihres Hauptmoduls (Anwendungsmodul) hinzu.
quelle
Der einfachste Weg für mich, ein Bibliotheksprojekt zu erstellen und wiederzuverwenden :
file > new > new module
(und beantworten Sie die Fragen zur Benutzeroberfläche)include ':myLibrary'
Überprüfen / oder Hinzufügen, wenn in der Datei build.gradle :
dependencies { ... compile project(':myLibrary') }
Um dieses Bibliotheksmodul in einem anderen Projekt wiederzuverwenden, kopieren Sie den Ordner im Projekt anstelle von Schritt 1 und führen Sie die Schritte 2 und 3 aus.
Sie können auch ein neues Studioanwendungsprojekt erstellen. Sie können ein vorhandenes Anwendungsmodul einfach in ein Bibliotheksmodul ändern, indem Sie die Plugin-Zuweisung in der Datei build.gradle in com.android.library ändern.
zu
mehr hier
quelle
Sie können jeder Anwendung ein neues Modul hinzufügen, wie Blundell in seiner Antwort sagt, und es dann von jeder anderen Anwendung aus referenzieren.
Wenn Sie das Modul an eine beliebige Stelle auf Ihrem Computer verschieben möchten, verschieben Sie einfach den Modulordner (Module sind völlig unabhängig), dann müssen Sie auf das Modul verweisen.
Um auf dieses Modul zu verweisen, sollten Sie:
Fügen Sie in der Datei build.gradle Ihrer App Folgendes hinzu:
Fügen Sie in der Datei settings.gradle Folgendes hinzu:
quelle
project(':library').projectDir = new File('../library')
wolibrary
ist der Ordnername parallel zum Ordner des Android-Projekts.Vergessen Sie nicht,
apply plugin: 'com.android.library'
in Ihrembuild.gradle
Plugin zu verwenden, anstatt es anzuwenden:'com.android.application'
quelle
Dokumentationsweg
Dies ist die empfohlene Methode gemäß den Hinweisen in der Android Studio-Dokumentation.
Erstellen Sie ein Bibliotheksmodul
Erstellen Sie ein neues Projekt, in dem Sie Ihre Bibliothek erstellen möchten. Klicken Sie auf Datei> Neu> Neues Modul> Android-Bibliothek> Weiter> (Name auswählen)> Fertig stellen . Fügen Sie dann Ihrer Bibliothek die gewünschten Klassen und Ressourcen hinzu.
Wenn Sie das Modul erstellen, wird eine AAR-Datei erstellt. Sie finden es in
project-name/module-name/build/outputs/aar/
.Fügen Sie Ihre Bibliothek als Abhängigkeit hinzu
Sie können Ihre Bibliothek als Abhängigkeit zu einem anderen Projekt wie folgt hinzufügen:
Stellen Sie in der Datei settings.gradle sicher, dass Ihr Bibliotheksname vorhanden ist.
Fügen Sie in der build.gradle-Datei der App die Kompilierungszeile zum Abschnitt Abhängigkeiten hinzu:
Das ist es. Sie sollten jetzt in der Lage sein, Ihre Bibliothek zu verwenden.
Anmerkungen
Wenn Sie Ihre Bibliothek einem größeren Publikum leicht zugänglich machen möchten, sollten Sie JitPac oder JCenter verwenden .
quelle
Hatte die gleiche Frage und löste sie folgendermaßen:
Startsituation :
Ziel : Sie möchten ein Modul mit dem Namen hinzufügen
dataformats
Java Library
)Stellen Sie sicher, dass Sie so
settings.gradle
aussehen (normalerweise automatisch):include ':frigoshare', ':frigoShare-backend', ':dataformats'
Stellen Sie ( manuell ) sicher, dass die
build.gradle
Dateien der Module, die Ihre Bibliothek verwenden müssen, die folgende Abhängigkeit aufweisen:dependencies { ... compile project(':dataformats') }
quelle
Zweck: Android-Bibliothek an einem Ort - Für mehrere Projekte freigeben http://raevilman.blogspot.com/2016/02/android-library-project-using-android.html
quelle
Als Kommentar zur tschechischen Sensation oben versuche ich, nach Gradle Build Varians zu suchen, und habe diesen Link gefunden: http://code.tutsplus.com/tutorials/using-gradle-build-variants--cms-25005 Dies ist eine sehr einfache Lösung. Folgendes habe ich getan: - In build.gradle:
Dann habe ich 2 weitere Versionen meiner App: Pro und Testversion mit 2 verschiedenen Paketnamen, dh 2 Anwendungs-IDs im obigen Code, damit ich beide auf Google Play hochladen kann. Ich codiere immer noch nur im Abschnitt "main" und verwende den getpackageName, um zwischen der Version zu wechseln. Gehen Sie einfach zu dem Link, den ich für Details gegeben habe.
quelle
Es gibt zwei einfachste Möglichkeiten, wenn eine nicht funktioniert, versuchen Sie es mit der anderen.
ODER
quelle
In meinem Fall mit MAC OS X 10.11 und Android 2.0 und genau das, was Aqib Mumtaz erklärt hat.
Aber jedes Mal hatte ich die folgende Meldung: "Beim Konfigurieren des Projekts ': app' ist ein Problem aufgetreten.> Modul xxx kann nicht ausgewertet werden: Konfiguration mit dem Namen 'default' wurde nicht gefunden ."
Ich habe festgestellt, dass der Grund für diese Meldung darin besteht, dass Android 2.0 das direkte Erstellen einer Bibliothek nicht zulässt. Daher habe ich mich entschlossen, zuerst ein App-Projekt zu erstellen und dann das build.gradle zu ändern, um es als Bibliothek zu transformieren.
Diese Lösung funktioniert nicht, da sich ein Bibliotheksprojekt stark von einem App-Projekt unterscheidet.
Also habe ich mein Problem folgendermaßen gelöst:
Fahren Sie dann mit der von Aqib Mumtaz vorgeschlagenen Lösung fort.
Infolgedessen wird Ihre Bibliotheksquelle freigegeben, ohne dass jedes Mal Quelldateien dupliziert werden müssen (es war eine Häresie für mich!).
Ich hoffe, das hilft dir.
quelle