532 votes

Accepter automatiquement toutes les licences SDK

Depuis gradle android plugins 2.2-alpha4:

Gradle tentera de télécharger le manque SDK paquets qu'un projet dépend

Qui est incroyablement cool et a été connu pour être un JakeWharton projet.

Mais, pour télécharger le kit de développement de la bibliothèque, vous devez: acceptez les contrats de licence ou gradle vous dit:

Vous n'avez pas accepté les accords de licence du SDK suivantes les composants: [version du SDK Android-Tools 24, Android SDK de la Plate-forme 24]. Avant la construction de votre projet, vous devez accepter le contrat de licence accords et effectuer l'installation des composants manquants à l'aide de l'Android Studio SDK Manager. Vous pouvez également apprendre à le transfert des contrats de licence à partir d'un poste de travail à un autre, aller à http://d.android.com/r/studio-ui/export-licenses.html

Et c'est un problème parce que j'aimerais installer tous les sdk dépendances tout en faisant un gradle build.

Je suis à la recherche d'une solution pour accepter automatiquement toutes les licences. Peut-être un gradle script ? Avez-vous des idées ?

Merci!

[MODIFIER]

Une solution est d'exécuter:

android update sdk --no-ui --filter build-tools-24.0.0,android-24,extra-android-m2repository

Et l'installer manuellement, mais c'est la gradle nouvelle fonction objectif pour le faire.

[EDIT 2]

Une meilleure solution est d'utiliser le sdkmananger:

yes | sudo sdkmanager --licenses

475voto

nsvir Points 599

AndroidSDK peut accepter enfin de licenses.

181voto

Dori Points 4011

J'ai rencontré avec de la alpha5 aperçu.

Jake Wharton m'a fait remarquer que l'on peut actuellement utiliser

mkdir -p "$ANDROID_SDK/licenses"
echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_SDK/licenses/android-sdk-license"
echo -e "\n84831b9409646a918e30573bab4c9c91346d8abd" > "$ANDROID_SDK/licenses/android-sdk-preview-license"

pour recréer le courant $ANDROID_HOME/license le dossier sur votre machine. Cela aurait le même résultat que le processus décrit dans le lien de l'erreur msg (http://tools.android.com/tech-docs/new-build-system/license).

Les hachages sont sha1s de le texte de la licence, qui, j'imagine, sera mise à jour régulièrement, de sorte que ce code ne fonctionne que pour si longtemps :)

Et l'installer manuellement, mais c'est la gradle nouvelle fonction objectif pour le faire.

J'ai été surpris au premier abord que ce n'est pas travailler hors de la boîte, même lorsque j'avais accepté les licences pour les composants nommés par l' android outil, mais il m'a été signalé son le SDK manager à l'intérieur COMME qui crée l' /licenses le dossier.

Je suppose que les outils officiels ne voulez pas sauter cette étape pour des raisons juridiques.

En relisant les notes de version, il déclare

SDK auto-télécharger: Gradle tentera de télécharger le manque SDK paquets qu'un projet dépend.

Ce qui ne signifie pas qu'il fonctionnera si vous n'avez pas installé l'android outils de encore et ont déjà accepté la dernière licence(s).

EDIT: en Disant cela, il ne fonctionne toujours pas sur mon test gubuntu de la boîte jusqu'à ce que je link le SDK jusqu'à QUE. CI fonctionne très bien si - ne sais pas quelle est la différence...

144voto

bgies Points 4458

Pour le nouveau Studio Android (2.3) le meilleur moyen de mise à jour/accepter toutes les licences consiste à exécuter :

vous devrez toujours copier les fichiers de licence à d’autres endroits basées sur votre installation.

58voto

Rager Points 323

Pour les nouveaux `` utilitaire :

``

Il y a qu'un peu de retard entre les deux yesses, donc la commande pourrait accrocher avec la licence montrant pendant un certain temps, mais il ne nécessite pas l’intervention humaine.

44voto

raven Points 401

Si vous utilisez Jenkins, vous pouvez utiliser le script bash suivant comme première étape dans le processus de compilation:

(while sleep 3; do echo "y"; done) | $ANDROID_HOME/tools/android update sdk -u

Ce sera bien sûr l'installer TOUTES les mises à jour disponibles, mais il vous fera économiser un peu de temps si vous pouvez vous libérer de l'espace disque. Le sommeil est pour éviter le cassé readline dans le programme d'installation, depuis le "oui" ne fonctionne pas correctement dans ce cas.

EDIT: Vous devez également ajouter la "Installer Android projet prérequis" plugin dans l'étape de génération pour obtenir le bon $ANDROID_HOME si vous êtes en utilisant le construit dans le SDK manager.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X