J'essaye d'installer une intégration continue avec Jenkins
sur un projet Android
gradle
Lorsque je le construit, j'obtiens l'erreur suivante:
[Android Gradle Jenkins Experiment2] $ "/Users/Shared/Jenkins/Home/workspace/Android Gradle Jenkins Experiment2/gradlew" build
FAILURE: Build failed with an exception.
* What went wrong:
A problem occurred configuring project ':app'.
The SDK directory '/Users/chaz/Library/Android/sdk' does not exist.
Ce qui suit fait partie de la configuration de ma jenkins:
Android_HOME
/Users/chaz/Library/Android/sdk
Java_HOME
/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/
Ma machine est OS X El Capitan Version 10.11.6
J'ai essayé ce qui suit:
sdk.dir
dans le fichier local.properties
(il pointe vers /Users/chaz/Library/Android/sdk
).Android_HOME
env dans la configuration de jenkins (n'a pas aidé).Quand j'ai googlé, j'ai trouvé quelqu'un confronté au même problème problème . Et la solution fournie était la suivante:
Solution
Cela se produit probablement parce que vous écrasez Android_HOME - Supprimez les personnalisations d'environnement de ce type, puis le SDK devrait S'installer correctement.
Reconnaissance
Merci et oui, il y avait un chevauchement des variables env. J'ai tout supprimé sauf le global et je l'ai gardé dans $ {Android_HOME}.
Comment dois-je faire letous sauf le global et les conserver dans $ {Android_HOME}.} _ une partie de la solution?
Edit: J'ai réussi à utiliser Jenkins sur une machine Windows avec la même configuration de jenkins (j'ai pu construire avec succès, installer apk dans un périphérique également).
Merci d'avance!
Cela sent comme un problème de permission. Vous avez peut-être donné l'autorisation à sdk-dir mais pas au répertoire parent.
Dans ma situation, c'est arrivé parce que le fichier
local.properties
avait été ajouté à .gitignore
(Je monte à distance)
Je veux juste dire comment nous avons résolu ce problème dans notre projet. Cela peut aider quelqu'un.
Le répertoire de travail de notre Jenkins est sous "/ User/shared", et notre SDK est sous "/ User/foo"
Nous avons essayé d'accorder à l'utilisateur foo et à tout le monde l'autorisation d'accéder au dossier SDK et à ses dossiers parent, mais cela n'a pas fonctionné.
Ensuite, nous avons installé le SDK sous/user/Partagé/Jenkins/Bibliothèque/Android/SDK via le Gestionnaire de SDK Android et avons accordé à l'utilisateur foo et à tous l'accès au nouveau dossier SDK et à ses dossiers parents. De plus, nous avons changé le chemin du SDK en une nouvelle configuration de projet Jenkins. Alors ça marche.
Comme l'a dit @ Ligi, c'est dû à un problème de permission. Donc, il peut être corrigé de 2 manières
Exécuter les commandes ci-dessous dans ~/Library/path à l'aide du terminal
chmod 777
à /Users/username/Library/
. Vérifier l'autorisation en exécutant la commande ls -s
Donc, /Users/username/Library/
devrait maintenant afficher la permission comme ceci:
drwxr-xr-x@
Deuxièmement, exécutez la commande ci-dessous sur le terminal pour afficher la bibliothèque dans l'explorateur de fichiers.
chflags nohidden ~/Library/
Alors maintenant, naviguez et cliquez avec le bouton droit de la souris sur le dossier Bibliothèque -> Obtenir des informations -> Défiler Vers le bas -> Modifier l’autorisation sur l’autorisation dans la boîte de dialogue.
Maintenant, lancez jerkin, il devrait pouvoir accéder au répertoire sdk dans Library