Impossible d'accepter le contrat de licence Android SDK Platform 24

119

J'obtiens l'erreur suivante lorsque j'essaie d'installer une plate-forme Android sur un projet Cordova. J'ai suivi ce guide: https://cordova.apache.org/docs/en/latest/guide/cli/

Une erreur se produit lors de l'exécution de ce qui suit: $ cordova platform add android --save

Un problème est survenu lors de la configuration du projet racine «android». Vous n'avez pas accepté les contrats de licence des composants SDK suivants: [Android SDK Platform 24].

J'ai cherché partout des moyens d' accepter le contrat de licence d'Android SDK Platform 24 , mais pas vraiment de chance.

Merci d'avance.

Daneye
la source
1
pour Windows, ouvrez SDK Manager avec un accès administrateur. Désélectionnez tout, recherchez SDK Platform 24, vérifiez cela, installez. Là, vous pouvez accepter la licence.
Nick Chan Abdullah
1
pour moi, le problème était d'avoir installé à android-sdkpartir de plusieurs endroits ( brew, brew casket android-studio) et de ne pas appeler la sdkmanager --licensescommande appropriée
Pierre-Alexis de Solminihac
Copie

Réponses:

167

Vous pouvez également simplement exécuter

$ ANDROID_HOME / tools / bin / sdkmanager --licenses

Ou pour Windows exécutez

% ANDROID_HOME% / tools / bin / sdkmanager --licenses

(crédit pour la commande Windows à @ puneet-kumar)

Hardik Patel
la source
Sur Mac, le sdk est dans / Library / Android /
Tyler Chong
Fonctionne très bien pour Android 26 et 27 également. J'ai eu le même problème, mais c'est arrivé lorsque mon cordova a mis à jour le gradle de 4.0 à 4.1
Trevor
@PuneetKumar cette commande ne fonctionne pas pour moi. J'ai le fichier sdkmanager.bat dans le dossier tools / bin
Heemanshu Bhalla
sous linux - bash: / tools / bin / sdkmanager: aucun fichier ou répertoire de ce type
Niladri Banerjee - Uttarpara
Avez-vous un moyen d'exécuter cela de manière non interactive?
Peter Mounce
163

Je ne sais pas exactement comment fonctionne Cordova, mais une fois que les licences sont acceptées, il crée un fichier. Vous pouvez créer ce fichier manuellement. Il est décrit sur cette question , mais voici les commandes pour créer le fichier de licence requis.

Linux:

mkdir "$ANDROID_HOME/licenses"
echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_HOME/licenses/android-sdk-license"

Les fenêtres:

mkdir "%ANDROID_HOME%\licenses"
echo |set /p="8933bad161af4178b1185d1a37fbf41ea5269c55" > "%ANDROID_HOME%\licenses\android-sdk-license"
Mike
la source
Hey Mike, dans quel répertoire j'exécute ces commandes? Merci!
Daneye
Le répertoire de travail ne devrait pas avoir d'importance, tant que la variable d'environnement $ ANDROID_SDK est définie. Cela peut également être $ ANDROID_HOME. L'un de ceux-ci devrait être défini; C'est l'emplacement du SDK Android. Vous pouvez taper 'printenv' et rechercher dans les variables définies pour le trouver. Ou simplement 'echo $ ANDROID_HOME' pour voir s'il est défini. C'est en supposant que les fenêtres Linux ... vous référenceriez les variables d'environnement par% ANDROID_SDK% au lieu de $ ANDROID_SDK.
Mike
5
Avec l'erreur, Cordova fera écho au chemin vers ANDROID_HOME (au cas où vous ne le trouveriez pas)! Si ANDROID_HOME n'est pas défini, vous pouvez le définir manuellement comme ceci set ANDROID_HOME="C:\Users\*YOUR_USER_NAME*\AppData\Local\Android\sdk"et exécuter les commandes ci-dessus.
Arno van Oordt
L'utilisation d'Android Studio et l'installation de la version 24 d'Android ont résolu ce problème pour moi.
David Douglas
3
Malgré les outils de build sdk 24 installés. mon problème n'a pas été résolu sur la machine mac. Résolu ce problème en créant manuellement un dossier de licences et un fichier android-sdk-license comme expliqué ci
kushalvm
52

J'ai eu ce problème sur Mac OS X 10.12.1 avec Cordova 6.4.0 et Android Studio 2.2.3.

Lorsque j'ai installé Android Studio, il a installé Platform 25, mais pas 24. Pour installer 24:

  • Ouvrez Android Studio.
  • Ouvrez Android Studio Menu > Preferences.
  • Appearance & Behavior > System Settings > Android SDK
  • Cochez la case pour Android 7.0 (Nougat) | 24
  • Cliquez sur ok et suivez les instructions.
jxmallett
la source
Remarque: n'oubliez pas d'ajuster la version Android à la plate-forme SDK manquante
Hugo H
2
Je l'ai fait, mais j'aurais probablement pu gagner un peu de temps en cliquant sur "Afficher les détails du package" et en sélectionnant uniquement le SDK, plutôt que d'installer également les API et la source Google.
Aaron
Des semaines se sont écoulées depuis ma dernière version. en reconstruisant mon application, j'ai rencontré le même problème ci-dessus mais le résout après avoir effectué cette solution.
Jur P
27

J'ai eu exactement le même problème. Ensuite, j'ai installé "Android 7.0 (API 24)> SDK Platform" et cela a fonctionné.

entrez la description de l'image ici

feyyaz
la source
26

Le moyen le plus simple de résoudre ce problème consiste à accepter les licences à l'aide de la commande suivante:

Système d'exploitation Windows:

C:\Users\{your-username}\AppData\Local\Android\sdk\tools\bin\sdkmanager --licenses

Des clauses de non-responsabilité vous seront présentées. Afin de poursuivre vos efforts de développement, vous devez répondre «y» à toutes les clauses de non-responsabilité.

Réseau complet
la source
25

Aller à Android\sdk\tools\bin

Aucune des solutions ci-dessus n'a fonctionné pour moi et finalement cette seule ligne a accepté toutes les licences Android.

yes | sdkmanager --licenses && sdkmanager --update
vishwaraj
la source
1
Si les windowsutilisateurs obtiennent une erreur. Essayez d' sdkmanager --licenses && sdkmanager --updateaccepter les licences manuellement.
Rahmat Ali le
Pour l'utilisateur macOs, accédez à / Users / USERNAME / Library / Android / sdk / tools / bin et yes | ./sdkmanager --licenses. et ./sdkmanager - pour en savoir plus.
Pushpak Sharma le
13

J'ai eu le problème, vous n'avez pas besoin de copier ou de créer un dossier, faites juste attention au chemin de votre SDK, il doit être le même de la variable d'environnement (ANDROID_HOME), ce qui n'était pas le même pour moi, je ne sais pas pourquoi.

emplacement SDK

John
la source
13

Dans mon cas, je n'utilise pas le studio Android (j'utilise eclipse). J'ai fait l'étape suivante: résolu simplement en exécutant la commande

android-sdks/tools/bin$ ./sdkmanager --update

Qui a créé un licensesrépertoire et ajouté un fichier appeléandroid-sdk-license intérieur.

Ensuite, vous pouvez exécuter (l' licensesoption n'est pas disponible sauf si vous avez effectué l'étape ci-dessus)

android-sdks/tools/bin$ ./sdkmanager --licenses

et acceptez la licence (cependant, dans mon cas, je n'ai pas eu besoin de le faire)

BeeZone
la source
9

J'ai installé android sdk build-tools 24 (c'est la version actuelle 24.0.3) via le gestionnaire de SDK. Le chemin pour ouvrir le gestionnaire de SDK est indiqué dans le fichier img joint. Cela a résolu mon problème SDK Manager

BruS
la source
1
Je ne vois pas d'image jointe, mais cela a fonctionné pour moi aussi. Il y a un bouton dans Android Studio pour SDK Manager, puis vous pouvez ouvrir un gestionnaire de SDK autonome qui vous permettra de télécharger assez facilement tous les trucs Android 24
Yonatan Kogan
Encore une fois, j'ai rencontré le même problème lors de l'installation à l'aide de cordova construire dans un autre PC avec Windows 7 OS. Cette fois, j'avais des outils de construction 24 déjà installés. Alors suivi les étapes mentionnées par Feyyaz ci-dessous. Cela installe Android 7.0 (API 24) et a fonctionné. Je pense donc que la dernière version de Cordova supérieure à 6 nécessite l'API 24 avec l'outil de construction 24 ou une version supérieure. Mais je n'ai trouvé aucune documentation à ce sujet sur leur site Web.
BruS
sur MacOS et Linux, le gestionnaire de SDK est à $ ANDROID_HOME / tools / android
Tony Laidig
7

J'ai eu le SDK Android en installant Android Studio et j'ai également obtenu cette erreur. Il existe une solution simple dans le guide de l'utilisateur .

  1. Sur une machine sur laquelle Android Studio est installé, cliquez sur Tools > Android > SDK Manager. En haut de la fenêtre, notez l' emplacement du SDK Android .

  2. Accédez à ce répertoire et recherchez le licenses/répertoire à l'intérieur.

    (Si vous ne voyez pas de licenses/répertoire, retournez dans Android Studio et mettez à jour vos outils SDK, en veillant à accepter les contrats de licence. Lorsque vous revenez au répertoire de base du SDK Android, vous devriez maintenant voir le répertoire.)

  3. Copiez le licenses/répertoire entier et collez-le dans le Android SDK home directorysur la machine où vous souhaitez construire vos projets.

Java Xu
la source
7

Cette erreur peut survenir si le système ne récupère pas la variable d'environnement ANDROID_HOME à partir du chemin approprié. Assurez-vous que vous avez installé le SDK Android et que vous avez correctement défini la variable ANDROID_HOME sur le chemin approprié, comme dans l'image ci-dessous:

ANDROID_HOME_PATH

Si la variable ANDROID_HOME n'est pas définie, le système essaie de choisir le chemin à partir d'un chemin par défaut (ce n'est peut-être pas le chemin où le SDK Android est défini, ce qui conduit à ce problème).

Krishna_Anipindi
la source
5

Installez le composant suivant:

entrez la description de l'image ici

Sumant Singh
la source
4

C'est parce que par défaut au moment de la rédaction de cet article, l' outil Ionic CLI est par défaut

<preference name="android-targetSdkVersion" value="LATEST_SDK_VERSION"/> 

C'est la raison pour laquelle il se plaint que vous n'avez pas accepté le contrat de licence, mais qu'en réalité vous n'avez pas installé les packages SDK pour cette API niveau d' mais que vous acceptez seuls la licence.

Donc, ce que vous devez faire est soit

  1. Changer la version de votre SDK cible
  2. Installer le dernier niveau d'API du SDK à partir du gestionnaire de SDK

Changer la version de votre SDK

Vous pouvez le faire manuellement et même le vérifier en exécutant

ionic cordova platform add android 

le fichier peut être trouvé à l' your-awesome-app/config.xml ouvrir et ajouter cette ligne, car il est caché comme indiqué ci-dessus

<preference name="android-targetSdkVersion" value="24"/>

Si vous n'êtes pas sûr du numéro de NIVEAU d'API que vous ciblez, ouvrez SDK Manager et regardez les niveaux d'API (numéros) disponibles sur votre ordinateur.

Installation du dernier package SDK

Vous pouvez ajouter les packages SDK actuels que la CLI affiche, ce qui dans votre cas est 24

Exécuter en SDK MANAGERtant qu'administrateur

Exécutez SDK Manager en tant qu'administrateur

Installez les packages d'API SDK que vous ciblez

C'est là que le niveau d'API du SDK est écrit

Comment ai-je su cela? Je l'ai fait ce matin et c'est comme ça que je l'ai résolu et je joue maintenant à Sticky Bubble sur Android pour me détendre un peu.

Bon déploiement!

Fahad
la source
L'ajout targetSdkVersionau config.xmlfichier a résolu mon problème. Merci :)
B Faley
4

Dans mon cas (script Dockerfile pour créer un conteneur Android CI - https://github.com/menny/docker_android ), je devais faire ces étapes:

mkdir ~/.android && touch ~/.android/repositories.cfg
yes | sdkmanager --licenses
sdkmanager "build-tools;26.0.0"
sdkmanager "platform-tools" "tools"
sdkmanager "platforms;android-26" "platforms;android-25" "platforms;android-24"
.....
sdkmanager --update
yes | sdkmanager --licenses

Deux notes:

  1. Dû créer un repositories.cfgfichier vide ou sdkmanagermourrait.
  2. J'ai dû effectuer la récupération / l'installation des packages dans différents appels, car il n'y a aucune indication de progression.
Menny
la source
4

Accédez à C: \ Users {user} \ AppData \ Local \ Android \ sdk \ tools \ bin

puis exécutez sdkmanager --licenses

il vous demandera d'accepter les accords restant à accepter. il vous suffira de taper "y" et d'entrer.

Résoudra le problème

Lakshitha Ruwan
la source
C'est également génial si vous avez un serveur de build qui doit télécharger automatiquement les sdk.
Roel le
J'ai essayé et je reçois Couldn't load neither find main class com.android.sdklib.tool.SdkManagerCli. Des idées?
PlayHardGoPro
Cela peut être utile stackoverflow.com/questions/40718487/… . vous pouvez essayer d'exécuter './SdkManagerCli' dans le dossier / sdklib / tools.
Lakshitha Ruwan
4

J'utilise Mac et je l'ai résolu en utilisant cette commande:

$ which sdkmanager
/usr/local/bin/sdkmanager
$ /usr/local/bin/sdkmanager --licenses
Warning: File /Users/user/.android/repositories.cfg could not be loaded.
6 of 6 SDK package licenses not accepted.
Review licenses that have not been accepted (y/N)? y

Ensuite, j'ai eu une liste de 6 licences à accepter et c'est résolu par la suite.

Neel
la source
4

Vous pouvez également suivre la voie "officielle". Exécutez « sdkmanager --licenses » dans le dossier tools / bin de l'installation du SDK Android et acceptez toutes les licences. Terminé!

c:\android-sdk\tools\bin>sdkmanager --licenses

Pour macOS ou Linux, c'est la même commande.

Georgy K
la source
3

J'ai dû mettre à jour le sdk android

android update sdk --no-ui

à un moment donné, il vous demandera un accord de licence, appuyez sur y. Après cela, vous devez retirer la plate-forme angulaire.

Tasnim Reza
la source
3
  1. Accédez à l'emplacement du SDK Android

C: \ Users \ nom d'utilisateur \ AppData \ Local \ Android \ sdk \ tools \ bin

  1. Exécuter la commande sdkmanager --licenses

  2. Acceptez la licence du SDK

Inder Malviya
la source
4
La même information a déjà été publiée plusieurs fois. Comment le vôtre améliore-t-il les réponses existantes?
Stephen Kennedy
2

Il a besoin d'une dernière plate-forme sdk stable installée. J'ai installé SDK-Platform à partir de l'API 25. Cela a résolu mon problème.Voir la capture d'écran ci-dessous

Tushar Walzade
la source
2

Ce problème fait surface lorsqu'une ancienne version de SDK Manager se trouve déjà dans la machine à partir de laquelle l'approche de la version Android est modifiée, ce qui nécessite un «studio android». J'ai été confronté à cela dans Visual Studio qui a été interrompu à plusieurs reprises avec le message d'erreur "Vous n'avez pas accepté la licence pour la version 25". La solution pour cela est "Installer Android Studio", puis "aller dans les variables d'environnement" et définir ANDROID_HOME sur "C: \ Users \\ AppData \ Local \ Android \ Sdk" (ce chemin peut être choisi dans Android Studio, Menu >> Outils >> Gestionnaire de SDK. Utilisez également le même dans "chemin" des variables d'environnement. De cette façon, le nouveau gestionnaire de SDK est mappé pour être récupéré par Visual Studio Build pour l'application Cordova.

Cela a juste pris mes efforts de 2 jours pour la deuxième fois

Je souhaite que les autres ne perdent pas leur temps dans ce gâchis.

ekambar kodali
la source
1

La modification de la version cible peut fonctionner comme indiqué ici

Si vous souhaitez spécifier la version du SDK, vous pouvez le faire en ajoutant la ligne suivante à votre config.xml à la racine de votre projet ionic / cordova

<preference name="android-targetSdkVersion" value="23"/>
Madhu Kumar
la source
1

J'espère que cela fonctionnera pour quelqu'un là-bas,
j'ai été confronté au même problème! J'avais 2 sdks, nommés sdk et sdk1. Il était lié par défaut à sdk mais celui qui fonctionnait était sdk1. Je suis donc allé à Environment Varaible et j'ai ajouté ANDROID_HOME et le chemin du sdk1, c'est-à-dire dans mon cas, c'était C: \ Users \ tripa_000 \ AppData \ Local \ Android \ sdk1 , et cela a résolu mon problème!

Tripathee Gaurav
la source
0

Pour moi, je construisais le Ionic en utilisant la commande "ionic build android" et j'obtenais le même problème! La solution était simplement

  • Pour installer le sdk requis
  • Exécutez la même commande dans CMD doit être en tant qu'administrateur
Adel
la source
0

Je viens de rencontrer ce problème, et ce qui l'a résolu pour moi sous Windows, vous utilisez la ligne de commande et vous avez récemment installé le sdk android, vous devez redémarrer l'invite de commande ou Power Shell après avoir installé le sdk android.

Norman Breau
la source
0

La réponse de Mike fonctionne, mais il faut mettre la licence générée sous C: \ Users \ user \ AppData \ Local \ Android \ sdk \ licenses.

Thyagarajan C
la source
0

sa moyenne manque la version Android SDK de cordova avec la version que vous avez installée. Pour un exemple cordova prend en charge Android SDK 24 mais vous n'avez pas Android SDK 24. il peut être inversé.

Yusuf
la source
0

Cela mettra à jour votre SDK Android et acceptera la licence dans le même temps (par exemple pour Android 25):

mise à jour android sdk --no-ui --filter build-tools-25.0.0, android-25, extra-android-m2repository

Yann Ulrich
la source
0

Le problème pour moi était que ma variable ANDROID_HOME était définie sur une autre installation dont j'avais oublié l'existence. Si tel est votre problème, supprimez l'ancienne installation.

Cilan
la source