Modulabhängigkeit – Android Studio

Ich habe 2 Module unter meinem Projekt M1, M2

Project - M1 - M2 

Früher hatte ich M1 als meine primäre Anwendung. Allerdings gab es eine Notwendigkeit für neue Anwendung M2, die gemeinsame Menge von gemeinsamen Sachen mit M1 geteilt. Also habe ich ein neues Modul M2 mit M1 als Abhängigkeit erstellt.

Um dies zu erreichen, habe ich build.gradle von M1 und M2 wie folgt geändert:

M2:

 compile project(':M1') 

M1: (in Bibliothek geändert)

 apply plugin: 'com.android.library' 

Allerdings funktioniert das nicht und wirft Fehler auf:

 Could not find property 'applicationVariants' on com.android.build.gradle.LibraryExtension_Decorated@6de81701. 

Irgendeine Idee, wie kann man dieses Problem lösen?

  • Das Modul unten wurde aus der Gradle-Struktur entfernt
  • Gradle Build sucht nach Google Play Services in Android Studio
  • Android Unit Tests - keine solche Eigenschaft: bootClasspath
  • Konfigurieren von Robolectric, Android Studio und Gradle, um eine Testanwendung zu machen
  • Android Studio: Android Manifest existiert nicht oder hat falsches Root-Tag
  • Travis CI - Android Project Build Failing
  • Android jacoco coverage leer mit gradle
  • In Android / Gradle, wie man eine Aufgabe definiert, die nur beim Erstellen eines spezifischen buildType / buildVariant / productFlavor (v0.10 +) läuft,
  • One Solution collect form web for “Modulabhängigkeit – Android Studio”

    Aus den docs:

    In Android-Projekten ist dies ein bisschen komplizierter, da es eine große Anzahl der gleichen Aufgabe geben könnte und deren Name auf der Grundlage der Build-Typen und Produkt-Aromen erzeugt wird.

    Um dies zu beheben, hat das Android-Objekt zwei Eigenschaften:

    ApplicationVariants (nur für das App-Plugin)

    LibraryVariants (nur für das Bibliotheks-Plugin)

    TestVariants (für beide Plugins)

    Alle drei geben eine DomainObjectCollection von ApplicationVariant-, LibraryVariant- und TestVariant-Objekten zurück.

    http://tools.android.com/tech-docs/new-build-system/user-guide

    So scheint es, dass Ihr build.gradle in M1 die Eigenschaft applicationVariants die nicht für Bibliotheksprojekte gilt. Da ich nicht weiß, was du genau tust, kann ich nur erraten, dass du entweder (1) das mit libraryVariants ersetzen libraryVariants oder (2) verschiebe es auf die build.gradle von M2.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.