Как добавить внешнюю библиотеку и вложенные внешние библиотеки в проект Android?
Структура моего проекта (не разрешено изменять)
- Apps/
- App1/
- build.gradle
- настройки .градле
- libraries/
- library1/
- build.grade
- настройки .градле
- library2/
- build.grade
- настройки .градле
- library3/
- build.grade
- настройки .градле
- library4/
- build.grade
- настройки .градле
- library1/
- App1/
Приложение1
App1/build.gradle
buildscript {
...
}
apply plugin: 'android'
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
compile project(':..:libraries:library1')
compile project(':..:libraries:library2')
compile project(':..:libraries:library3')
compile project(':..:libraries:library4')
}
android {
...
}
App1 не зависит напрямую от library3 или library4, однако оно будет жаловаться, если я не включу их в зависимости в файле build.gradle и файле settings.gradle. Итак, я включил их только для того, чтобы он не жаловался.
App1/settings.gradle
include ':'
include '..:libraries:library1'
include '..:libraries:library2'
include '..:libraries:library3'
include '..:libraries:library4'
библиотека1
библиотека1/build.gradle
buildscript {
...
}
apply plugin: 'android-library'
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
compile project(':..:library3')
compile project(':..:library4')
}
android {
...
}
библиотека1/settings.gradle
include ':'
include '..:library3'
include '..:library4'
библиотека2..4
библиотека2..4/build.gradle
buildscript {
...
}
apply plugin: 'android-library'
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
}
android {
...
}
библиотека2..4/settings.gradle
include ':'
При попытке gradlew clean build на App1 я получаю следующую ошибку:
FAILURE: Build failed with an exception.
* Where:
Build file '/home/user/projects/branches/branch1/Apps/libraries/library1/build.gradle' line: 15
* What went wrong:
A problem occurred evaluating project ':..:library:library1'.
> Project with path ':..:library3' could not be found in project ':..:library:library1'.
Строка 15 — это compile project(':..:library3') в файле library1/build.gradle.
Как добавить внешнюю библиотеку и вложенные внешние библиотеки в проект Android?