8

Was ich habe:

vier unabhängig voneinander arbeitende Android-Module:Android Studio: „neue Modul -> Import bestehende Projekt“ vs. „Import-Modul“

  1. MyProjectMainModule, ein Hauptbehälter Anwendung angebracht zu MyProject

  2. MyGradleModule, eine Bibliothek, mit allen notwendigen Komponenten während gradlew Prozess gebaut.

  3. MyPreGradleModule, eine Bibliothek, mit src/, res/, AndroidManifest.xml und pom.xml, ohne Gradle wrapper

  4. MyRawModule, eine Bibliothek, mit src/, res/, AndroidManifest.xml, ohne pom.xml (allgemein in Ant-basierten Eklipse gesehen Projekte)

Was ich erreichen möchte:

Um alle drei Module zu importieren (d. H. MyGradleModule, MyPreGradleModule, MyRawModule) in MyProject als Abhängigkeiten von MyProject. Die komplette Projektstruktur sollte unter Projektstruktur ähneln:

MyProject 
|--MyProjectMainModule 
|--MyGradleModule 
|--MyPreGradleModule 
|--MyRawModule 

Frage:

Realisierung aller drei Module (MyGradleModule, MyPreGradleModule und MyRawModule) unterschiedliche Strukturen, was sind die optimalen Möglichkeiten, um jedes Module zu importieren, mit minimale Anstrengungen?

Könnten Sie bitte mit je Module in Ihrer Antwort eine der folgenden Android Studio Menüpunkte entsprechen (wenn Sie alle):

  1. File ->Import Module...
  2. File ->New Module... ->Import Existing Project
  3. File ->New Module... ->Android Library

Antwort

15

Sie können die drei Module auf dem gleichen Projekt hinzufügen, indem Sie eine settings.gradle Datei im MyProject/Ordner Erstellen und Hinzufügen der Module es:

include ':MyGradleModule' 
include ':MyPreGradleModule' 
include ':MyRawModule' 

Dann für jedes Modul, konfigurieren Sie die build.gradle Abhängigkeiten die anderen Module verweisen als erforderlich. Zum Beispiel, fügen Sie diese in dem MyProjectMainModule er die Ausgabe von MyGradleModule produziert machen verwenden:

dependencies { 
    compile project(':MyGradleModule') 
} 

Schließlich, wenn Ihr Projekt heterogene Submodule hat, dann können Sie ihre Struktur unter Verwendung der ‚sourceSets‘ Schließung konfigurieren.Zum Beispiel würde Ihre RAW-Modul eine ähnliche Konfiguration wie diese haben:

android { 
    sourceSets { 
     main { 
      manifest.srcFile 'AndroidManifest.xml' 
      java.srcDirs = ['src'] 
      resources.srcDirs = ['src'] 
      aidl.srcDirs = ['src'] 
      renderscript.srcDirs = ['src'] 
      res.srcDirs = ['res'] 
      assets.srcDirs = ['assets'] 
     } 
     androidTest.setRoot('tests') 
    } 
} 

Schauen Sie sich diesen Abschnitt der Gradle Plugin Guide zu sehen, welche Konfigurationsmöglichkeiten zur Verfügung stehen.

+1

retter , Vielen Dank! –

7

Dieser arbeitete für mich:

  1. Öffnen Sie Ihr Projekt in Android Studio
  2. die Bibliothek Download (Git, oder ein Zip-Archiv zu entpacken)
  3. Gehen Sie zu Datei> Import-Modul und Import Die Bibliothek als Modul
  4. Gehen Sie zu Datei> Projektstruktur> Module
  5. Suchen Sie Ihr Hauptprojektmodul, klicken Sie darauf. Es sollte ein paar android Bibliotheken haben, wie zum Beispiel: Unterstützung-v4 etc.
  6. Klicken Sie auf das mehr auf der linken grünen Taste „+“> Modulabhängigkeits
  7. Wählen Sie „Ihre Bibliothek“
+0

Nur ein Hinweis: Wenn Sie eine Importanweisung für die neue Abhängigkeit hinzugefügt haben, BEVOR Sie alle oben genannten Schritte ausgeführt haben und Android Studio weiterhin den Importvorgang verweigert, versuchen Sie, diese Zeile zu löschen und neu zu schreiben. – whitelionV