Могут ли библиотеки Android в Gradle иметь другие библиотеки Android в качестве зависимостей?

Разрешена ли эта структура?

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

У меня было это с Ant, но с Gradle мой проект не может найти sublib1 или sublib2.

Когда я запускаю gradle, я получаю эту ошибку:

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

Это параметр.gradle из MyProject :

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

Это build.gradle из 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') } } 

Это settings.gradle из lib1 :

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

Это build.gradle из 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 } 

Solutions Collecting From Web of "Могут ли библиотеки Android в Gradle иметь другие библиотеки Android в качестве зависимостей?"

Кажется, что Gradle не поддерживает несколько settings.gradle . Этот файл должен присутствовать только в корне проекта и должен включать все подпроекты:

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

Источник: http://www.gradle.org/docs/current/userguide/multi_project_builds.html

Вы можете иметь другие библиотеки в качестве зависимостей в проекте библиотеки. В ваших настройках.gradle просто включите ВСЕ модули приложений / библиотек.

И в проекте библиотеки, который зависит от другого библиотечного модуля, вы просто добавляете его как зависимость, как и любой другой модуль в проекте.

В одном из моих модулей библиотеки зависимость от градиента выглядит следующим образом:

 dependencies { compile project(':library1') compile project(':library2') compile project(':library3') }