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
- 1/
- App1/
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?
OriginalL'auteur prolink007 | 2014-01-08
Vous devez vous connecter pour publier un commentaire.
Dans vos paramètres de niveau supérieur.gradle (App1/paramètres.gradle) fichier faire quelque chose comme cela pour chaque bibliothèque
Supprimer les autres paramètres.gradle fichiers, vous n'avez pas besoin d'eux
puis dans chaque script de build vous avez seulement besoin d'utiliser
comme indiqué ci-dessus il suffit d'utiliser un seul des paramètres.gradle fichier à la racine du projet (App1).
Puis, à partir de votre App1 dossier exécuter
gradlew clean :library1:build
pour valider que library1 est de construire correctement.Comme pour la question sur App1 se plaindre des bibliothèques manquantes 3 & 4, êtes-vous sûr que vous n'avez pas de code dans l'application directement le référencement de ces bibliothèques, ou les bibliothèques ne sont pas être trouvé lors de la compilation 1. La construction de chaque bibliothèque individuellement afin de valider qu'ils construire tous ok.
Evaluation project 'library2' using empty build file.
pouvez-vous confirmer que les chemins sont corrects pour la définition du projet. Aussi vous ne savez pas si il manque un ':' à partir de 'library2'?
Ouais, ils sont corrects. Vérifié et re-vérifié à plusieurs reprises. Aussi l'ai copier et coller pour vous en assurer. Cependant, je suis en train d'essayer une autre méthode pour résoudre mon problème et je vais avoir beaucoup de succès avec elle jusqu'à présent. Je vais poster mes résultats dès que j'ai confirmé le travail complètement.
J'ai dû utiliser des accolades pour obtenir que cela fonctionne, c'est à dire
compile project (':library1')
plutôt quecompile project ':library1'
Mise à jour de la réponse, merci @tmalseed pour le heads up.
OriginalL'auteur Phil H
Une question.
Avez-vous besoin de cette dépendance de l'arbre?
Si oui, votre Application n'a pas besoin d'importer les bibliothèques 3 et 4. Ces dépendances sont disponibles sur la Bibliothèque de 1.
Sur les paramètres.gradle fichiers. Pourquoi un dans chaque module? Ce fichier n'est utilisé que dans la racine du projet (comme Eclipse espace de travail) pour faire référence à vos modules (App, la Bibliothèque de 1, la Bibliothèque 2, etc...)
Cela vous aider?
OriginalL'auteur Luis E. Fernandez
Je suis en train de faire ce pour les chemins relatifs:
OriginalL'auteur stefan