¿Pueden las bibliotecas de Android en Gradle tener otras bibliotecas de Android como dependencias?

¿Se permite esta estructura?

MyProject/ | settings.gradle + app/ | build.gradle + libraries/ + lib1/ | settings.gradle | build.gradle + libraries/ + sublib1/ | build.gradle + sublib2/ | build.gradle + lib2/ | build.gradle 

Tuve esto trabajando con Ant, pero con Gradle mi proyecto no puede encontrar sublib1 o sublib2.

Cuando corro gradle obtengo este error:

 * What went wrong: A problem occurred evaluating project ':libraries:lib1'. > Project with path ':libraries:sublib1' could not be found in project ':libraries:lib1'. 

Esto es settings.gradle de MyProject :

 include ':libraries:lib1' include ':libraries:lib2' 

Esto es build.gradle de MyProject :

 buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.4' } } apply plugin: 'android' dependencies { compile fileTree(dir: 'libs', include: '*.jar') compile project(':libraries:lib1') compile project(':libraries:lib2') } android { compileSdkVersion 15 buildToolsVersion "17.0.0" sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] aidl.srcDirs = ['src'] renderscript.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } instrumentTest.setRoot('tests') } } 

Esto es settings.gradle de lib1 :

 include ':libraries:sublib1' include ':libraries:sublib2' 

Esto es build.gradle de lib1 :

 buildscript { repositories { mavenCentral() } dependencies { compile fileTree(dir: 'libs', include: '*.jar') compile project(':libraries:sublib1') compile project(':libraries:sublib2') } } apply plugin: 'android-library' android { compileSdkVersion 15 } 

2 Solutions collect form web for “¿Pueden las bibliotecas de Android en Gradle tener otras bibliotecas de Android como dependencias?”

Gradle no parece soportar varios archivos settings.gradle . Este archivo debe estar presente sólo en la raíz del proyecto y debe incluir todos los subproyectos:

 include ':libraries:lib1', ':libraries:lib1:libraries:sublib1', ':libraries:lib1:libraries:sublib2', ':libraries:lib2' 

Fuente: http://www.gradle.org/docs/current/userguide/multi_project_builds.html

Puede tener otras bibliotecas como dependencias en un proyecto de biblioteca. En su settings.gradle sólo incluyen TODOS los módulos de aplicaciones / librerías.

Y en el proyecto de biblioteca que depende de otro módulo de biblioteca, sólo se agrega como una dependencia como cualquier otro módulo del proyecto.

En uno de mis módulos de biblioteca, la dependencia en gradle se ve así:

 dependencies { compile project(':library1') compile project(':library2') compile project(':library3') } 
  • Publicar android gradle proyecto a local maven repo
  • Obtener el sabor del producto o crear una variante en una aplicación para Android
  • Android - Cómo obtener ApplicationId de Flavor
  • Android Gradle 1.1 - agregando una dependencia de prueba en las pruebas de otro proyecto
  • ¿Cómo excluir la carpeta res de los desarrolladores de gradle build?
  • No se puede crear con la Biblioteca de soporte en Travis CI / Android SDK v20
  • TransformClassesAndResourcesWithProguardForRelease FALLA
  • Cómo importar ** algunas ** partes de la biblioteca de guayaba en la aplicación de Android (gradle)
  • Excluir variantes de construcción específicas
  • ¿Cómo puedo importar correctamente HttpClient de org.apache en Android usando el archivo de compilación gradle?
  • No se puede encontrar la entrada de Keystore. Pero sé que está ahí
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.