¿Cuál es la forma correcta de especificar un proyecto de biblioteca de Android para incluir sus dependencias

En Android Studio estoy intentando compilar un módulo de aplicación de Android que utiliza una biblioteca de Android.
La biblioteca incluye un archivo jar para Bugsense (incluido automáticamente por gradle).

Aunque el módulo de biblioteca compila correctamente, el módulo de aplicación falla porque está buscando el archivo jar de Bugsense que se utiliza dentro del módulo de biblioteca.

Tengo una solución que permite que el proyecto compile. Al incluir también la dependencia de Bugsense en el proyecto todo funciona.

Mi pregunta es: ¿Cómo compilar el proyecto sin duplicar la dependencia de Bugsense?

Aquí está mi archivo build.gradle para el proyecto de biblioteca.

buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.6.+' } } apply plugin: 'android-library' repositories { mavenCentral() maven { url 'http://www.bugsense.com/gradle/' } } android { compileSdkVersion 15 buildToolsVersion "19.0.0" defaultConfig { minSdkVersion 15 targetSdkVersion 15 } } dependencies { compile 'com.bugsense.trace:bugsense:3.6' } 

El proyecto de biblioteca se llama "util"

A continuación se muestra la sección android de build.gradle para la aplicación

 android { compileSdkVersion 15 buildToolsVersion '19.0.0' defaultConfig { minSdkVersion 15 targetSdkVersion 15 } dependencies { compile project(':util') } } 

Cuando compilo esto consigo el error siguiente:

 * What went wrong: A problem occurred configuring project ':br'. > Failed to notify project evaluation listener. > Could not resolve all dependencies for configuration ':br:_DebugCompile'. > Could not find com.bugsense.trace:bugsense:3.6. Required by: dss:br:unspecified > dss:util:unspecified 

Puedo hacer el trabajo de la compilación agregando Bugsense a la sección de los repositorios del archivo de build.gradle para la aplicación. A continuación se muestra el código que agregué al archivo build.gradle para el proyecto de aplicación.

 repositories { mavenCentral() maven { url 'http://www.bugsense.com/gradle/' } } 

Recuerde, el código anterior está en el build.gradle para el proyecto de aplicación Y la biblioteca.

¿Cómo evito agregar la dependencia de Bugsense a los proyectos de la aplicación y de la biblioteca?

ACTUALIZACIONES:

Estoy usando Gradle 1.8

Estoy compilando desde la línea de comandos con "gradle clean assembleDebug"

A continuación, se muestra el archivo build.gradle completo para el proyecto de aplicación:

 buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.6.+' } } apply plugin: 'android' repositories { mavenCentral() //maven { url 'http://www.bugsense.com/gradle/' } } android { compileSdkVersion 15 buildToolsVersion '19.0.0' defaultConfig { minSdkVersion 15 targetSdkVersion 15 testPackageName "com.myapp.test" } dependencies { compile project(':common') compile project(':util') } } dependencies { instrumentTestCompile 'com.jayway.android.robotium:robotium-solo:4.3' instrumentTestCompile 'com.squareup:fest-android:1.0.+' instrumentTestCompile 'com.squareup.spoon:spoon-client:1.0.+' instrumentTestCompile 'com.google.guava:guava:15.0' } configurations { spoon } dependencies { spoon 'com.squareup.spoon:spoon-runner:1.0.5' } 

Es el comportamiento esperado. Sólo se tienen en cuenta las declaraciones de repositorio para el proyecto cuya configuración se resuelve actualmente, incluso cuando se trata de dependencias transitivas. Normalmente, los repositorios se declaran dentro del proyecto de allprojects { .. } los proyectos raíz allprojects { .. } o subprojects { ... } bloque, en cuyo caso este problema nunca puede ocurrir.

PS: dependencies { .. } necesita salir del bloque android { ... } .

  • : No se puede instanciar la aplicación y ClassNotFound mientras se comparte apk
  • Gradle: descargar Dependencias de aar-library incluidas
  • Causado por: java.lang.NoClassDefFoundError: Clase no encontrada usando el cargador de clase de arranque; No hay rastro de la pila disponible
  • Gradle: Cómo publicar una biblioteca de Android en el repositorio local
  • Android Databinding Compile Advertencia: Referencias de método con '.' es obsoleto
  • Manifiesto de Android vs Gradle Script
  • ¿Cómo tener dos sabores de construcción heredar de un sabor de raíz en Android Studio?
  • ¿Por qué los tipos de construcción son distintos de los sabores del producto?
  • No se puede hacer que el complemento de enlace de datos de Android funcione
  • La actualización a gradle 2.1.0 causa - No se pudo expandir el error ZIP
  • Jack compilando tomar para siempre
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.