323 votes

Erreur "Impossible d'installer les paquets Android SDK suivants car certaines licences n'ont pas été acceptées".

J'obtiens cette erreur dans jitpack, j'ai tout essayé sur internet. Voici mon erreur

Failed to install the following Android SDK packages as some licences have not been accepted.
     platforms;android-26 Android SDK Platform 26
     build-tools;28.0.3 Android SDK Build-Tools 28.0.3
  To build this project, accept the SDK license agreements and install the missing components using the Android Studio SDK Manager.

Et quand je lance ./sdkmanager --licenses

 All SDK package licenses accepted.======] 100% Computing updates...             

L'utilisation de sudo avec la commande ci-dessus donne

Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
    at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)
    at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)
    at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)
    at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:73)
    at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
    ... 5 more

journal d'erreurs supplémentaire

File /opt/android-sdk-linux/.android/repositories.cfg could not be loaded.
Checking the license for package Android SDK Build-Tools 28.0.3 in /opt/android-sdk-linux/licenses
Warning: License for package Android SDK Build-Tools 28.0.3 not accepted.
Checking the license for package Android SDK Platform 26 in /opt/android-sdk-linux/licenses
Warning: License for package Android SDK Platform 26 not accepted.

Je ne sais pas pourquoi il vérifie les licences à cet endroit alors que l'emplacement de mon SDK est autre.

1 votes

Il semble qu'il y ait un peu de folie solution ici Mais ça peut marcher !

4 votes

J'ai eu le même problème. J'ai téléchargé les SDK pertinents via Android Studio, et à aucun moment il ne m'a été demandé d'indiquer les licences. Encore un problème inutile.

1 votes

J'ai "accepté" les licences, mais cela n'a pas dû être enregistré puisque le répertoire Android sdk était en lecture seule. En mettant un Chmod 777 dans le répertoire sdk, cela a fonctionné pour moi. sudo chmod -R 0777 /opt/android-sdk

541voto

Felix Too Points 2638

Vous devez accepter les licences avant de construire.

Según Documentation du SDK Android vous pouvez utiliser la commande suivante en fonction de l'emplacement de sdkmanager : Docs sur --licenses semble cependant manquer.

yes | sdkmanager --licenses

Distributions GNU/Linux :

yes | ~/Android/Sdk/tools/bin/sdkmanager --licenses

macOS :

export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home
yes | ~/Library/Android/sdk/tools/bin/sdkmanager --licenses

Les fenêtres :

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

Flutter :

> flutter doctor --android-licenses

109 votes

J'ai obtenu cette erreur Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema

15 votes

@HendraWD Si vous avez installé un autre Java sur votre ordinateur (Note : Android Studio a son propre Java), vous devez vous assurer qu'ils ont la même version. Sinon, il peut se produire cette erreur. Je viens de le résoudre en définissant le chemin "Android Studio/jre" dans JAVA_HOME.

12 votes

Pour un Mac sans Java installé, j'ai dû export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home , cd ~/Library/Android/sdk/tools/bin , ./sdkmanager --licenses .

198voto

george mano Points 374

Sur Android Studio aller à Outils -> Gestionnaire de SDK .

Ir a Outils SDK onglet.

Sélectionnez le Outils en ligne de commande du SDK Android (dernière version) et téléchargez en appuyant sur Appliquer .

enter image description here

Sur Windows vous pouvez trouver le sdkmanager.bat à l'adresse suivante

C:\Users\ [votre_utilisateur] \AppData\Local\Android\Sdk\cmdline -outils \latest\bin

enter image description here

3 votes

C'est la meilleure réponse pour Windows ! Merci.

0 votes

C'est également ce qui a fonctionné pour moi sous OS X. L'option du terminal sdkmanager n'a pas fonctionné.

79voto

Masum Points 2431

Dans le système d'exploitation Windows, allez dans le chemin de votre sdkmanager puis exécutez

./sdkmanager.bat --licenses

Vous pouvez trouver votre sdkmanager dans C:\Users\USER\AppData\Local\Android\Sdk\tools\bin

Pour trouver votre chemin d'accès au SDK Android, suivez la zone rouge de l'image ci-dessous.

enter image description here

1 votes

Après cela, vous pouvez passer en revue chaque licence et les accepter en conséquence par la même fenêtre bash (Windows CMD jette une erreur. Utilisez git bash ou autre au lieu de Windows CMD).

6 votes

J'ai essayé cela et j'ai obtenu une erreur Java classdefnotfound pour une raison quelconque pour XmlSchema.

55voto

Si vous travaillez avec Flutter, cette commande vous conviendra parfaitement.

flutter doctor --android-licenses

0 votes

Ça ne marche pas. Ne dis pas définitivement quand ce n'est pas définitivement.

38voto

Zaman Points 361

MacOS Catalina

Étape 1 : modification des préférences d'Android Studio

  1. Ouvrez votre Android Studio
  2. Appuyez sur Commande+, ou aller dans l'AppBar en haut à gauche Android Studio > Préférences .
  3. Dans le volet de gauche, sélectionnez Apparence > Paramètres système > Android SDK
  4. Sélectionnez Outils SDK à côté de Plateformes SDK et sous Emplacement du SDK Android
  5. Marque de contrôle Outils en ligne de commande du SDK Android (dernière version) et appuyez sur OK bouton.
  6. Attendez que l'installation soit terminée

Locating Preferences of Android Studio

Android Studio Preferences

Étape 2 (pour les utilisateurs de Flutter) :

  1. Allez dans le Terminal et exécutez la commande suivante

flutter doctor --android-licenses

Étape 2 (pour les utilisateurs d'Android) :

  1. Allez dans le Terminal et exécutez la commande suivante

export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home

yes | ~/Library/Android/sdk/tools/bin/sdkmanager --licenses

0 votes

Réponse parfaite et très utile. Parmi toutes les réponses et les différentes solutions que j'ai essayées, seule celle-ci a bien fonctionné pour moi. J'utilise ionic et mac et la solution ci-dessus était parfaite et les étapes détaillées étaient très utiles. Merci.

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