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.

3voto

guy Points 972

Sur Linux

Android SDK ne fonctionne qu'avec JDK 8 alors désinstallez votre JDK version.

Passé la commande et onglet presse pour l'autocomplétion, supprimez toutes les choses qu'il vous montre qui commencent par openjdk-

sudo apt remove openjdk-

et installez maintenant JDK 8

sudo apt install openjdk-8-jdk

2voto

guccisekspir Points 821

Je recommande de supprimer les paramètres Android-studio-dir et Android-sdk, et de laisser flutter détecter automatiquement leur chemin à la place : Cela fonctionne pour moi.

flutter config --android-studio-dir=""

flutter config --android-sdk=""

2voto

Abdulbasit Points 23

Tout d'abord vous devez savoir que flutter fonctionne sur jdk 8, donc si vous avez d'autres versions installées vous devez les purger afin de supprimer complètement les autres versions

NOTE : ceci est conforme à mon cas Ubuntu 20.04, CECI EST CONFORME À MA SITUATION, IL N'EST PAS GARANTI QU'IL FONCTIONNE POUR VOUS.

si vous avez jdk 11, pour désinstaller utilisez une des deux commandes en fonction de celle que vous aviez installée ou vous pouvez lancer les deux si vous ne savez pas laquelle est installée sur votre machine.

sudo apt purge openjdk-11-jre-headless

sudo apt purge openjdk-11-jre

s'il s'agit d'une autre version, remplacez 11 par ce numéro. si vous utilisez le jdk par défaut alors pour désinstaller utilisez la commande suivante

sudo apt purge default-jre

pour s'assurer que nous supprimons tout ce qui est lié à java, exécutez cette commande

sudo apt auto remove

REMARQUE : vous pouvez exécuter toutes les commandes ci-dessus pour être plus sûr de supprimer complètement tout ce qui est lié à java.

pour vérifier que nous avons retiré tout ce qui a été exécuté

java -v

si vous voyez l'erreur ci-dessous ou la version de java alors java n'a pas été désinstallé

Unrecognized option: --version
Error: Could not create the Java Virtual Machine. 
Error: A fatal exception has occurred. Program will exit.

mais si vous obtenez la réponse que java n'a pas été trouvé et qu'il y a une suggestion d'installation de java, cela signifie que java a été désinstallé.

maintenant nous devons installer jdk 8 en exécutant cette commande

sudo apt install openjdk-8-jre

si tout va bien, redémarrez votre machine et exécutez flutter doctor et suivez les instructions pour accepter les licences

J'espère que cet article vous sera utile.

2voto

ggariepy Points 109

Pour moi, sur Windows 10, la réponse était simplement de supprimer la variable d'environnement JAVA_HOME.

Ce n'est probablement pas une bonne idée si vous êtes un développeur Java, ou si vous vous appuyez sur un logiciel Java pour faire votre travail, mais si vous êtes un développeur qui ne travaille pas dans l'espace Java et que vous commencez juste à utiliser Flutter comme moi, alors allez dans les variables d'environnement du système et supprimez celle-là. flutter doctor --android-licenses a fonctionné comme il se doit après que j'ai fait ça.

1voto

Ma solution était la suivante : J'avais installé Android SDK Build-Tools, Android Emulator et Android SDK Platform-Tools. J'avais également JAVA_HOME dans les variables d'environnement.

J'ai donc décidé de désinstaller Android SDK Build-Tools, Android Emulator et Android SDK Platform-Tools et de les réinstaller. De plus, j'ai supprimé JAVA_HOME variable. Et après ces opérations, je lance flutter doctor --android-licenses dans le terminal. Et d'une certaine manière, ça a marché.

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