Как правильно указать проект библиотеки Android, чтобы включить его зависимости
В Android Studio я пытаюсь скомпилировать модуль приложения Android, который использует библиотеку Android.
Библиотека включает в себя JAR-файл для Bugsense (включается автоматически Gradle).
Хотя модуль библиотеки компилируется правильно, модуль приложения завершается сбоем, поскольку ищет файл jar Bugsense, который используется в модуле библиотеки.
У меня есть обходной путь, который позволяет компилировать проект. Благодаря включению зависимости Bugsense в проект все работает.
Мой вопрос: как заставить проект компилироваться, не дублируя зависимость Bugsense?
Вот мой файл build.gradle для проекта библиотеки.
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'
}
Проект библиотеки называется «утилитой»
Ниже приведен раздел Android для build.gradle для приложения.
android {
compileSdkVersion 15
buildToolsVersion '19.0.0'
defaultConfig {
minSdkVersion 15
targetSdkVersion 15
}
dependencies {
compile project(':util')
}
}
Когда я компилирую это, я получаю следующую ошибку:
* 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
Я могу заставить компиляцию работать, добавив Bugsense в раздел репозиториев файла build.gradle для приложения. Ниже приведен код, который я добавил в файл build.gradle для проекта приложения.
repositories {
mavenCentral()
maven { url 'http://www.bugsense.com/gradle/' }
}
Помните, что приведенный выше код находится в build.gradle для проекта приложения и библиотеки.
Как избежать добавления зависимости Bugsense как в проект приложения, так и в проект библиотеки?
ОБНОВЛЕНИЕ:
Я использую Gradle 1.8
Я компилирую из командной строки с помощью "gradle clean assemblyDebug"
Ниже приведен полный файл build.gradle для проекта приложения:
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' }