Dependencia del módulo – Android Studio

Tengo 2 módulos bajo mi proyecto M1, M2

Project - M1 - M2 

Anteriormente, tenía M1 como mi aplicación principal. Sin embargo, había una necesidad de la nueva aplicación M2 que compartía mucho de cosas comunes con M1. Así, he creado un nuevo módulo M2 con M1 como dependencia.

Para lograr esto, he modificado build.gradle de M1 y M2 de la siguiente manera:

M2:

 compile project(':M1') 

M1: (Cambiado a la biblioteca)

 apply plugin: 'com.android.library' 

Sin embargo, esto no funciona y lanza error:

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

¿Alguna idea, sobre cómo resolver este problema?

De los documentos:

En los proyectos de Android, esto es un poco más complicado porque podría haber un gran número de la misma tarea y su nombre se genera sobre la base de los tipos de construcción y los sabores del producto.

Para solucionar esto, el objeto android tiene dos propiedades:

ApplicationVariants (sólo para el complemento de aplicaciones)

LibraryVariants (sólo para el complemento de biblioteca)

TestVariants (para ambos complementos)

Los tres devuelven un objeto DomainObjectCollection de objetos ApplicationVariant, LibraryVariant y TestVariant respectivamente.

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

Así que parece que tu build.gradle en M1 usa la propiedad applicationVariants que no es aplicable a proyectos de biblioteca. Puesto que no sé lo que estás haciendo exactamente, puedo adivinar que necesitas (1) reemplazar eso con libraryVariants o (2) moverlo a build.gradle de M2.

  • Gradle de Android: ¿qué significan los corchetes alrededor de la versión?
  • Diferencia entre compilar vs compilar árbol vs compilar archivos?
  • AndroidStudio (0.8.9 Mac) No se pudo sincronizar el nuevo proyecto Gradle
  • Error de compilación de Android Studio: la constante de enumeración INSTANT_RUN_REPLACEMENT no existe en la clase
  • ¿Cómo puedo especificar por sabor buildType sourceSets?
  • Manifiesto del proceso Gradle con la nueva fusión de manifiesto
  • Gradle 4.0 No se puede encontrar una configuración coincidente
  • Al construir la versión de apk usando android studio, obtengo un error "Keystore fue manipulado, o la contraseña era incorrecta"
  • Publicar los resultados de Lint a Sonar usando Gradle
  • Mezcla de complementos androides de gradle y gradle-experimental
  • Prueba de Android: 'Múltiples archivos dex' cuando se usa 'cheque de gradle chequeado'
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.