Android Gradle l'ajout d'une bibliothèque externe et imbriquées les bibliothèques externes à un projet

Comment puis-je ajouter une bibliothèque externe et imbriqués les bibliothèques externes à un projet android?


Mon projet de la structure (Pas le droit de les modifier)

  • Apps/
    • App1/
      • construire.gradle
      • paramètres.gradle
    • bibliothèques/
      • 1/
        • construire.grade
        • paramètres.gradle
      • library2/
        • construire.grade
        • paramètres.gradle
      • library3/
        • construire.grade
        • paramètres.gradle
      • library4/
        • construire.grade
        • paramètres.gradle

App1

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 ne dépend pas directement de library3 ou library4, cependant, il va se plaindre si je ne les inclut pas dans les dépendances du build.gradle fichier et le settings.gradle fichier. Donc, je les ai inclus juste pour arrêter de se plaindre.

App1/paramètres.gradle

include ':'
include '..:libraries:library1'
include '..:libraries:library2'
include '..:libraries:library3'
include '..:libraries:library4'

library1

1/construire.gradle

buildscript {
    ...
}

apply plugin: 'android-library'

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile project(':..:library3')
    compile project(':..:library4')
}

android {
    ...
}

1/paramètres.gradle

include ':'
include '..:library3'
include '..:library4'

library2..4

library2..4/construire.gradle

buildscript {
    ...
}

apply plugin: 'android-library'

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
}

android {
    ...
}

library2..4/paramètres.gradle

include ':'

Lors de la tentative de gradlew clean build sur App1 j'obtiens l'erreur suivante:

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'.

La ligne 15 est compile project(':..:library3') dans le library1/build.gradle fichier.

Comment puis-je ajouter une bibliothèque externe et imbriqués les bibliothèques externes à un projet android?

Je suis curieux de savoir si quelqu'un familier avec les Paramètres DSL / Groovy pourrait venir avec un extrait de code qui analyse imbriqués les paramètres.gradles. Cela est particulièrement utile pour les submodules. Actuellement, l'ajout d'un projet n'importe où provoque l'accumulation de casser tout le chemin jusqu'à la chaîne.

OriginalL'auteur prolink007 | 2014-01-08