325 votes

flutter doctor --Android-licenses donne une erreur java

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:581)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    ... 5 more

J'obtiens l'erreur ci-dessus en exécutant flutter doctor --Android-licenses. Quelqu'un sait-il pourquoi cela se produit et comment je peux le corriger ? Je l'exécute déjà sur la console flutter.

713voto

sariDon Points 75

Installation de Outils de ligne de commande du SDK Android de Gestionnaire de SDK Android a fait le travail pour moi.

  1. Ouvrir Outils > Gestionnaire de SDK
  2. À partir de la gauche, choisissez, Apparence et comportement > Paramètres du système > SDK Android
  3. Sélectionnez Outils SDK dans le menu supérieur
  4. Vérifiez Outils de ligne de commande du SDK Android et cliquez sur "appliquer".

Alternative à l'étape 1 : Windows : Fichier > Paramètres (Ctrl+Alt+S) / MAC : Android Studio > Préférences


enter image description here

Si vous rencontrez un problème malgré les étapes ci-dessus, vous pouvez essayer de mettre votre système à niveau vers le JDK 8. La documentation officielle sur la mise à niveau vers le JDK 8 est disponible. ici .

162voto

Milo Chen Points 451

Je suis un utilisateur de Mac et je résous ce problème.

Cette réponse aide également les utilisateurs de Windows et de Linux à résoudre le problème à partir des commentaires de l'utilisateur.

Au début, voici ce que j'ai rencontré pour la question
$ flutter doctor -v enter image description here

Et la commande suivante ne fonctionne pas dans ma situation.
$ flutter doctor --Android-licenses enter image description here

La façon de résoudre ce problème est d'installer
Outils de ligne de commande du SDK Android . Et comment ?
Il vous suffit pour cela de suivre les deux étapes suivantes.

Installer : Outils de ligne de commande Android SDK

Étape 1. Ouvrez le SDK Manager
Menu supérieur -> Outils -> SDK Manager enter image description here

Étape 2. Installez les outils de ligne de commande

  1. Déplier Apparence et comportement
  2. Déplier Paramètres du système
  3. Cliquez sur SDK Android
  4. Cliquez sur l'onglet de Outils SDK
  5. Vérifiez Outils en ligne de commande du SDK Android (dernière version)
  6. Cliquez sur Appliquer bouton. enter image description here Cliquez ensuite sur le bouton OK pour terminer l'installation.

Continuez à aller signer les licences Android.

Une fois l'installation d'Android Studio terminée, vous pouvez procéder comme suit.
$ flutter doctor --Android-licenses
enter image description here Après avoir dit oui plusieurs fois, toutes les licences Android ont été signées.

Vérifiez à nouveau auprès du médecin des palpitations.

$ flutter doctor -v
enter image description here

Vous pouvez voir que Toutes les licences Android sont acceptées.

Félicitations, vous avez terminé cette tâche !

61voto

Belema Points 453

J'ai eu le même problème, je l'ai résolu en installant les outils de coomandage depuis Android studio.

cliquez sur fichier, paramètres puis dans la barre de recherche tapez sdk et cliquez dans Android sdk Android Sdk

Puis cliquez sur sdk tools, cochez la case Android command-line tools, puis cliquez sur apply allow to download. Essayez ensuite d'exécuter flutter doctor --android-licenses à nouveau sur votre cmd vous serez invité à accepter les licences

18voto

Il semble que vous obtenez une exception JDK, cela se produit lorsque vous n'avez pas JAVA_HOME défini sur les variables de votre système OU Vous avez presque installé le JDK mais dans le mauvais dossier. OU vous essayez d'exécuter le SDK Manager (qui vous permet d'accepter les licences Android) avec le mauvais JDK.

Dans le cas de JDK 9 ou plus :

En fait, Android SDK Manager ne fonctionne qu'avec Gradle compilé sur la version du JDK 8. pour le développement d'Android Par conséquent, si la version la plus récente du JDK est déjà définie dans les variables système, envisagez de la rétrograder à la version 8 du JDK.

Cette version fonctionne bien pour moi : https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

En cas de JDK 8 déjà installé

Si vous avez extrait manuellement le dossier JDK dans un répertoire, vous l'avez peut-être "mal" configuré. Je veux dire : Vous avez pointé du mauvais côté du bin Le dossier Java, mais il fonctionne toujours. Vous devez définir JAVA_HOME comme racine du JDK, par exemple : Dans le dossier zippé du JDK, il faut l'extraire et faire pointer la variable système dans le dossier dézippé, non directement dans le répertoire bin, il faut faire pointer JAVA_HOME comme variable système et déclarer le dossier bin comme exécutable.

Exemples :

Linux

Dans le fichier de configuration de votre shell :

export JAVA_HOME="/home/user/jdk1.8.0_261"
export PATH="$PATH:$JAVA_HOME/bin"

Windows

Dans votre gestionnaire de variables d'environnement :

Définissez une nouvelle VARIABLE SYSTEME nommée JAVA_HOME.

enter image description here

Ensuite, modifiez la variable PATH et ajoutez-y un nouveau registre :

%JAVA_HOME%\bin

En fait, je ne sais pas vraiment comment gérer les JDKs sous MacOS, si c'est votre OS, désolé :(

J'espère que cela vous aidera !

5voto

Antinous Points 908

Vous avez besoin du JDK 8 car les fichiers requis ont été supprimés dans les versions ultérieures.

Une fois installé, vous pouvez passer d'une version à l'autre en utilisant

sudo update-alternatives --config java

puis sélectionnez l'option pour JDK 8. Cela vous montrera également l'emplacement de votre installation de JDK 8 dont vous aurez besoin pour :

export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/jre/"
PATH=$PATH:$JAVA_HOME/bin

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