Accepter automatiquement toutes les SDK licences
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 à 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 | sdkmanager --licenses
- Vous pouvez également pop un
echo y |
en face de la commande à l'auto acceptez la licence. Utile lors de l'exécution sur une tête de CI de la boîte 🙂 - J'ai eu à faire
~/.android/tools/android update sdk --no-ui --filter build-tools-25.0.0,android-25,extra-android-m2repository
parce que leandroid
outil a été localisé à mon domicile - sdkmanager --licences ne fonctionne plus. J'ai utilisé --mise à niveau, a ignoré les erreurs et cette trié les problèmes de licence.
- sdkmanager --licences Android\tools\bin a fonctionné pour moi!
- J'ai utilisé cette commande pour l'IC de l'environnement de script de build avec petit réglage. J'ai ajouté --sdk_root=$ANDROID_SDK_PATH. Le problème était que les licences ont été acceptées et n'est pas enregistré pour Android SDK dossier racine. Dernière commande: oui | sdkmanager --licences --sdk_root=$ANDROID_SDK_PATH (sans sudo)
- Assurez-vous d'avoir défini
$ANDROID_SDK_PATH
à la racine du chemin où vous avez installé le SDK (c'est à dire:/opt/android-sdk
), ou il suffit de mettre le chemin d'accès directement (c'est à dire:yes | sdkmanager --licenses --sdk_root=/opt/android-sdk
) yes | sudo sdkmanager --licenses
cela déclenche uneError: Unknown argument --licenses
@nsvir- Dans ubuntu, docker, cela a fonctionné pour moi:
RUN sh -c ' printf "y\ny\ny\ny\ny\ny\ny\ny\ny\ny\n" | ./sdkmanager --licenses
- ce commentaire est assez important en fait, si vous travaillez à travers cmd il est très probable que vous définissez ANDROID_HOME, de sorte qu'il ne fonctionne pas, tout ce que vous faire
Vous devez vous connecter pour publier un commentaire.
AndroidSDK peut enfin accepter de licences.
EDIT:
comme l'a souligné dans les commentaires de @MoOx, sur macOS, vous pouvez le faire
yes | sudo ~/Library/Android/sdk/tools/bin/sdkmanager --licenses
comme l'a souligné dans les commentaires de @pho, @mikebridge et @ Noitidart sur Windows, vous pouvez le faire
cmd.exe ""/K"%LocalAppData%\Android\sdk\tools\bin\sdkmanager.bat --licenses"
assurez-vous d'installer java avant de
C:\Users\x1\AppData\Local\Android\sdk\tools\android
puis il a sauté ouvrir une interface graphique, et ensuite installer manquant puis cliquez sur "Accepter Liscenses" dans la nouvelle boîte de dialogue qui apparaît.yes | sudo ~/Library/Android/sdk/tools/bin/sdkmanager --licenses
/Library/Android/sdk/tools/bin
, exécuter:yes | ./sdkmanager --licenses
sdkmanager --update
Dockerfile
où j'ai dû accepter toutes les licences lors de l'installation de certains paquets dans le SDK manager:RUN yes | sdkmanager "build-tools;28.0.2" "platform-tools"
C:\Users\UserName\sdk-tools-windows-4333796 \tools\bin\sdkmanager.bat
.yes | C:\Users\x1\AppData\Local\Android\sdk\tools\bin\sdkmanager.bat --licenses
ilJ'ai rencontré avec de la
alpha5
aperçu.Jake Wharton m'a fait remarquer que l'on peut actuellement utiliser
pour recréer l'actuel
$ANDROID_HOME/license
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 🙂
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 le
android
outil, mais il m'a été signalé son le SDK manager à l'intérieur COMME qui crée la/licenses
dossier.Je suppose que les outils officiels ne voulez pas sauter cette étape pour des raisons juridiques.
En relisant les notes de version c'états
Qui ne l'empêche pas de travailler 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 mais - pas sûr que la différence est...
mkdir -p
au lieu de|| true
.sdkmanager --licenses
d56f5187479451eabf01fb78af6dfcb131a6481e
.8933bad161af4178b1185d1a37fbf41ea5269c55
travaille toujours pour Google Référentiel et le Soutien Android Référentiel.echo
:echo -e "\nd56f5187479451eabf01fb78af6dfcb131a6481e" >> "${ANDROID_HOME}/licenses/android-sdk-license"
. Mais je pense que votre problème se cache quelque part d'autre.n8933bad161af4178b1185d1a37fbf41ea5269c55
vous devez exécuter dans votre terminal sdkmanager --licences dans le dossier bin de votre chemin de sdk , il faut l'accepter , puis ouvrez le fichier de licence que vous avez acceptéPour le tout nouveau Android Studio (2.3) la meilleure façon de mettre à jour et/ou accepter toutes les licences consiste à exécuter:
vous pourriez encore besoin de copier les fichiers de licence à d'autres lieux en fonction de votre configuration.
tools/bin/sdkmanager --licenses
yes
dans cette commande en quelque sorte pour les systèmes de construction automatisée? Vous n'aurez pas toujours la console interactive de l'accès à ces machines, donc en appuyant sury
sur le clavier physiquement ne fonctionne pas.cd $ANDROID_HOME
avant d'exécuter cette commandecd $ANDROID_HOME
juste pour être plus clair, où pour l'exécution de cette, de toute façon merci beaucoup.Pour la nouvelle
sdkmanager
utilitaire:yes | $ANDROID_HOME/tools/bin/sdkmanager "build-tools;24.0.3"
Il y a un peu de retard entre yesses, de sorte que la commande peut se bloquer avec le permis de montrer que pour un temps, mais il ne nécessite pas d'intervention humaine.
up-to-date
réponse. Il semble--licenses
n'existe plus. Remarque: pour voir la liste des versions possibles qui peuvent être fournis:$ANDROID_HOME/tools/bin/sdkmanager --list
yes | android-sdk-linux/tools/bin/sdkmanager --licenses || true
dans mon implant.Si vous utilisez Jenkins, vous pouvez utiliser le script bash suivant comme première étape dans le processus de construction:
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.
cela a résolu mon erreur
yes | $ANDROID_HOME/tools/bin/sdkmanager "build-tools;25.0.2"
fait la même chose.Malheureusement, la façon que l'OP à l'origine résolu, il ne fonctionne pas toujours.
Si vous trouvez le message d'erreur qu'est-ce que vos générations actuelles construire des outils version. Il se pourrait que c'est une version supérieure de construire des outils qui est manquant. Dans ce cas, vous devez démarrer manuellement SDK Manager et ajouter la construction d'outils et d'accepter le contrat de licence.
Par l'OP instructions, il regarder comme suit.
$ ./gradlew build
Puis réglez vous commande comme suit:
L'exécution de ce nouveau, toujours de ne pas faire de Gradle heureux. De façon manuelle, l'acceptation est la seule solution jusqu'à ce que quelqu'un venir avec quelque chose de mieux. (S'il vous plaît!)
android update sdk --no-ui --filter build-tools-24.0.2,android-24,extra-android-m2repository
l'exécution de cette via l'invite de commande avec droit d'administration de correction de l'erreur. J'ai été incapable d'installer phonegap gestionnaire de pluginNous avons constaté le même problème de la construction du projet sur Jenkins. Avec
buildToolsVersion '25.0.2'
, nous devons accepter les licences avant de construire. Dans notre cas, nous avons besoin de courir:yes | sdkmanager --update
qui accepte de licences pour le sdkmanager lui-même, et puisyes | sdkmanager --licenses
qui accepte de nouvelles licences non acceptée préalablementRappelez-vous: exécuter ces commans avec le même utilisateur que
jenkins
n'. Dans notre Debian, le Jenkins user est justejenkins
. En d'autres termes: le fait deroot
permettra de créer de la accepté de licences que deroot
, donc Jenkins ne les lisent pas.Par la voie, nous avons trouvé
sdkmanager
à/var/lib/jenkins/tools/android-sdk/tools/bin
. Si le vôtre n'est pas là, trouver avecfind /-name "sdkmanager"
sdkmanager --licenses
il l'a fait, merci!La
android
outil est obsolète et vous devez utiliser lesdkmanager
à la place.sdkmanager
également écrit le fichier de licences lorsque vous tout d'abord l'accepter. Les changements de licence selon laquelle SDK vous êtes en utilisant ce même si la commandefonctionne sur certains systèmes. Il ne fonctionnera pas sur tous. Certains SDK installe attendre à du fichier de licence à la fin, sans un saut de ligne dans le fichier alors essayez d'ajouter un
-n
de la commande echo.Si cela ne fonctionne pas, vous pouvez essayer d'utiliser le codage base64 à la place.
Donc à découvrir mon licence:
Un message vous invite à accepter le contrat de licence. Après avoir accepté, il va copier sur
${ANDROID_HOME}/licenses/android-sdk-license
. Pour vous assurer de toujours obtenir exactement ce qui est écrit utiliserbase64
.Ensuite, vous pouvez utiliser
base64 -d
recréer le fichier exactement.Vous pouvez vérifier si le fichier est écrit ce qui est attendu par l'exécution d'un sha1sum sur elle.
si vous exécutez
yes | sdkmanager --licenses
, puis d'imprimer le contenu de$ANDROID_HOME/licenses/android-sdk-license
,nous allons obtenir ce
Pour GitLab CI, à accepter la version du SDK Android-Outils de 26.0.2 de licences, vous devez exécuter ce
$ANDROID_HOME/licenses/android-sdk-license
est-ce destiné? c'est à dire. ajoutantAndroid SDK Build-Tools 26.02
ajouté une nouvelle licence sha1 chaîneBuild-Tools 26.0.2
et notre build cassé. Ma solution était tout simplement de faireyes | sdkmanager --licenses
. Pas deecho
s nécessaire et c'est l'avenir.Dockerfile
: git.io/vdS5k%ANDROID_HOME%\licenses
dossier dans le repo git comme./exported-licenses
, puis dans le fichier build j'ai mis comme suit:xcopy exported-licenses %ANDROID_HOME%\licenses /s/h/e/k/f/c/y/i
Noter que pour ceux qui viennent à cette question actuellement, build-outils-24.0.2 est (je pense) maintenant obsolète, de sorte que vous obtiendrez:
lors de l'exécution de diverses commandes qui ont été proposées pour les installer.
La solution est d'ajouter
--all
:Aussi, si vous êtes en 32 bits linux, tout après la construction des outils de 23.0.1 est 64 bits uniquement, donc ne sera pas exécuté. 32bit utilisateurs sont bloqués sur 23.0.1, la seule façon d'obtenir une version ultérieure outils est de passer à 64 bits.
25.0.1
.Si vous utilisez
tools/bin/sdkmanager --licenses
vous avez encore le besoin d'avoir une interaction humaine. J'ai un problème avec mon gitlab CI. C'est ma solution:echo y
va dire oui si il y a une question, mais vous avez besoin de faire une ligne par installe packageVous pouvez également les exécuter:
Et dans Windows, exécutez:
Pour un message d'erreur sur les api du SDK numéro 25:
android update sdk --no-ui --all --filter build-tools-25.0.1,android-25,extra-android-m2repository
Ok POUR toute PERSONNE AYANT CE PROBLÈME à partir DE 2018. Les réponses ci-dessus ne fonctionne PAS pour moi. Ce N'travail a été l'ouverture d'Android SDK - cliquant sur le bouton de TÉLÉCHARGEMENT de la barre d'outils et en sélectionnant les paquets appropriés. Après avoir terminé le téléchargement, il vous permettra d'accepter le contrat de licence.
J'ai résolu ce problème par la création d'un public repo git avec la accepté de fichiers de licence. Puis-je utiliser
wget
pour aller chercher ces licences sur toute machine dont j'ai besoin dans un [sdk-dir]/licenses répertoire avant de lancer ./gradlew pour construire mon projet.Pour ceux qui ont des problèmes avec la ligne de commande SDK, la raison pour laquelle elle ne trouve pas les licences que vous avez accepté, c'est parce qu'ils ont été écrits à un emplacement différent de
$ANDROID_HOME/licenses
qui est l'endroit où ils doivent être.J'ai trouvé la solution la plus simple a été d'accepter la licence comme ceci:
$ANDROID_HOME/bin/sdkmanager --licenses --sdk_root=$ANDROID_HOME
Note: Ceci suppose que vous avez défini
ANDROID_HOME
à point pour la destination de votre sdk est installé.J'ai enfin trouvé une solution sur Windows, pour avoir un vrai silencieux et automatique de l'installation:
Sur Windows, la syntaxe suivante ne fonctionne pas:
Il semble que le "y" ne sont pas correctement envoyé à la java programme appelé dans le lot.
La solution de contournement consiste à créer un fichier file-y.txt avec plusieurs "y", un par ligne, et d'utiliser
Cela va créer les fichiers nécessaires dans les licences répertoire. Le problème est probablement lié à l'utilisation de BufferedReader en Java
cd $ANDROID_HOME/tools/bin
yes | ./sdkmanager --update
ou
yes | $ANDROID_HOME/tools/bin/sdkmanager --update
De copier l'intégralité des licences/répertoire et le coller dans le kit SDK d'Android à la maison de répertoire sur la machine où vous souhaitez construire vos projets.
https://developer.android.com/studio/intro/update.html#download-with-gradle
cette résolu le problème pour moi
J'ai eu le même message d'erreur lors de l'utilisation de Cordoue.
Le problème était dû au fait que j'ai installé le Sdk Android via Android Studio et à travers
apt
avecapt install android-sdk adb
. Et Cordova a été d'appeler les fichiers installés par le biais deapt
la place des fichiers dans mon répertoire home.Cela a fonctionné une fois, j'ai changé le chemin du SDK dans bash:
Puis j'ai enlevé le système de fichiers qui n'ont pas utilisé le plus:
apt remove android-sdk adb
.Vous pouvez accepter toutes les licences en exécutant la commande suivante:
Il vous invite à travers chaque licence que vous n'avez pas encore été accepté et vous pouvez simplement entrer
y
à accepter chacun d'eux.Voici mon Panneau de configuration.
Vous pouvez suivre à partir d'une plaine l'environnement Linux.
Noter que
yes |
et--licenses --sdk_root=${ANDROID_HOME}
clauses.Il semble
sdkmanager --update
revient accords,yes |
est apparu deux fois.pour windows, ouvrir cmd et entrée en
bin
répertoire par la commande en cours d'exécution:puis exécutez
sdkmanager --licenses
commande, il vous demande d'accepter les licences.Dans Windows PowerShell, vous pouvez le faire
C'est beaucoup plus souple et ne nécessite aucun intervention manuelle. Le nombre 30 est arbitraire, devrait être suffisant pour couvrir le nombre de licence acceptations, mais peut être augmentée si nécessaire
- Je exécuter
de terminal et rencontré ce problème.
Pour manuellement, passez à Android Studio -> Android SDK -> SDK de la Plate-forme
Cliquez sur Afficher les Paquets de Détail et vérifier :
Lors de l'installation de paquets, vérifier accepter le contrat de licence => peut résoudre le problème.
Sur Mac OSX, accédez à la
sdk/tools/bin
Puis exécutez
./sdkmanager --licenses
, et en accepter toutes les licences.De juillet 2019, la méthode la plus simple est d'utiliser:
flutter doctor --android-licenses
dans l'invite de commande.Il produit pour afficher le refusés T&C de Sdk, un par un, et vous êtes donné la possibilité de choisir "y/n'. Choisissez y pour toutes.
Alternativement, lorsque vous exécutez
flutter doctor
, il sera exécuté Android outils de diagnostic qui affiche le nombre de licences ne sont pas encore accepté, et vous suggère de le faire fonctionner avec l' --android-licences drapeau.Je naviguez jusqu'à:
et j'ai tapé dans le terminal:
Avec de la racine de l'autorisation.
Et ça marche pour moi maintenant.
POUR RÉAGIR à des Applications NATIVES:
Si vous rencontrez ce problème pour Réagir application Native, en plus des étapes mentionnées ci-dessus, assurez-vous d'avoir le local.fichier de propriétés dans l'android répertoire(AppName/android) de votre application qui pointe vers votre répertoire 'sdk':
J'ai essayé tous les commande ci-dessus sur windows 10 machine
mais la solution a été d'utiliser le SDKMANAGER de vérifier et d'accepter les licences d'acheter de l'installation de manque versions
J'ai eu la même erreur de licence n'est pas acceptée...essayer de mettre en place android environnement pour exécuter une Réaction application native dans l'émulateur android pour les API de niveau 23.
Je n'ai suivantes:
Basée sur le lien https://developer.android.com/studio/intro/update#download-with-gradle
Vérifié si la licence a obtenu téléchargé via l'Android studio 3.1.3 du SDK manager.
Configurer ANDROID_HOME comme C:\\Android\Sdk
(il a été installé dans C:\Users\username\AppData\Local\Android\Sdk)
L'erreur s'est résolu après une nouvelle tentative de construire une nouvelle invite de commande.
Après avoir essayé beaucoup de solutions possibles mentionnés par les membres de la communauté, je viens de trouver il pourrait y avoir eu des problèmes différents des heures supplémentaires, de sorte que la plupart des solutions sont obsolètes.
Actuellement, et comme j'ai posté dans le Travis de la communauté, Travis doit être l'acceptation de toutes les licences par défaut, mais il continuait à se plaindre de ne pas accepter les licences 27.0.3 qui ne devrait pas arriver.
Ajoutant:
devrait corriger le problème, nous nous serions en mesure d'utiliser un un 3.+ la version d'Android Gradle Outils sans avoir à même de déclarer quelle est la version de construire des outils que nous utilisons:
Cela fonctionne comme le 29 octobre 2018. Travis peut apporter des modifications dans le futur, donc bonne chance!
Sur Windows 10 ouverture
cmd
avec des privilèges d'administrateur, puis en tapantcd C:\Program Files (x86)\Android\android-sdk\tools\bin\
et puissdkmanager --update
a fonctionné pour moi. Après que j'avais juste à appuyer sur "y" deux fois pour accepter les licences.J'ai passé une demi-journée à la recherche de solution pour Bitbucket Pipelines
Si vous utilisez Bitbucket Pipelines et vous avez le problème de l'acceptation de tous les SDK licences, essayez d'utiliser ce code dans votre .fichier yml:
Il devrait fonctionner.
Il est tard, mais toutes les solutions mentionnées ci-dessus n'a pas fonctionné pour moi et enfin cette seule ligne accepterait toutes android licences.
J'ai eu le même problème, je l'ai résolu par l'ouverture d'Android Studio. Le fait est que Android Outils de construction de 26.0.2 n'était pas installé. Une erreur est venu m'avertir à ce sujet, je l'ai installé et le synchroniser avec le projet. Problème résolu 🙂
Tout ce que j'avais à faire est de
yes | sdkmanager --licenses > /dev/null
, et tout ce qui a été accepté, et pas de sortie sur la console ou travis journal ou n'importe où. Il fonctionne également commeyes | sdkmanager "tools" > /dev/null
par exemple.Dans windows, accédez à l'invite de commande et tapez les commandes suivantes:
Cela va générer les licences de maintenir la touche "y" pour accepter toutes les licences.
Il y a 2 approche que je trouve à ce problème.
Mise à jour des outils du kit sdk avec fenêtre de commande en acceptant le contrat de licence comme suit, il suffit de changer la version en fonction de votre besoin.
mise à jour android sdk --no-ui --filtre à construire-outils-25.0.2,android-25,extra-android-m2repository
Deuxième approche est la copie de la licence dossiers pour Android répertoire racine. Goto votre machine de développement open Android Studio. Trouver votre emplacement du sdk de Projet de la Structure de menu. (C:\Users\UserName\AppData\Local\Android\sdk). Dans ce répertoire il doit y avoir un dossier licence. Copier ce dossier avec le contenu. Collez ce dossier dans votre Jenkins machine serveur (ou où vous le visage avec ce problème) sous android sdk dossier racine. (C:\Users\UserName.jenkins\tools\android-sdk)
Enfin, ce 2 étapes simples a fonctionné pour moi sur windows 10.
1) assurez-vous que vous mettez à jour votre android outils de construction et de l'api. Sur votre Android Sdk, cliquez Simplement sur installer les paquets à installer les mises à jour disponibles.
2) Démarrez votre Android Studio et vous serez invité à installer le reqiured l'élaboration d'outils pour la déjà mis à jour de l'api et des outils, Ce sera d'installer les outils de construction de propriétés, y compris les licences et votre fait.
C'EST UNE SOLUTION RAPIDE;
1. ALLER À C:\Users(VOTRE NOM d'UTILISATEUR)\AppData\Local\Android\sdk\build-outils
2. SUPPRIMER LE DOSSIER PRÉ-EXISTANT DE LA VERSION QUI N'A PAS DE LICENCE.
3. ALLER À ANDROID STUDIO ET INSTALLER MANUELLEMENT L'OUTIL à NOUVEAU(cela va vous donner la possibilité d'accepter le contrat de licence )
........
(problème résolu)