flutter médecin-android-licences 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 cette erreur ci-dessus lors de l'exécution de flutter doctor android android-licenses. Est-ce que quelqu'un sait pourquoi cela se produit et comment je peux le réparer? Je l'exécute déjà sur la console flutter.

Author: Vivek Kogilathota, 2020-05-24

6 answers

L'installation deOutils de ligne de commande Android SDK à partir deAndroid SDK Manager a fait le travail pour moi.

  1. Ouvrir Outils > Gestionnaire de SDK
  2. Dans la gauche, choisissez, Apparence et comportement > Paramètres Système > SDK Android
  3. Sélectionnez SDK Tools {[2] } dans le menu supérieur
  4. Vérifier SDK Android outils de ligne de Commande et cliquez sur 'appliquer'.
 86
Author: sariDon, 2020-10-01 20:31:14

Installer les outils de ligne de commande du SDK Android à partir du gestionnaire de SDK Android a résolu mon problème.

  1. Ouvrir Outils - > Gestionnaire de SDK
  2. Apparence et comportement > Paramètres système > SDK Android
  3. Sélectionnez Outils SDK dans le menu supérieur. Vérifiez les outils de ligne de commande du SDK Android et cliquez sur "appliquer"
 10
Author: Chamod Dissanayake, 2020-11-15 19:02:06

Sous Linux

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

Passé la commande et appuyez sur tab pour la saisie semi-automatique, supprimez toutes les choses qu'il vous montre qui commencent par openjdk-

sudo apt remove openjdk-

Et maintenant installer JDK 8

sudo apt install openjdk-8-jdk
 3
Author: Guy Luz, 2020-11-14 18:12:15

Je recommande d'effacer 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=""
 2
Author: guccisekspir, 2020-05-24 23:48:37

Il semble que vous obteniez une exception JDK, cela se produit lorsque vous n'avez pas JAVA_HOMEréglé sur vos variables système OUvous avez presque réglé le JDK mais dans le mauvais dossier OU vous essayez d'exécuter le gestionnaire SDK (qui vous permet d'accepter les licences Android) avec le mauvais JDK.

Dans le cas de JDK 9 ou supérieur:

En fait, Android SDK Manager ne fonctionne qu'avec Gradle compilé sur la version de JDK 8 pour le développement Android , donc, si vous avez une version JDK la plus récente déjà configurée sur les variables système, envisagez de la rétrograder vers la version JDK 8.

Cette version fonctionne très 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 réglé. Je veux dire: Vous avez indiqué le mauvais chemin vers le dossier bin Java, mais il reste travail. Vous devez définir JAVA_HOME{[4] } comme racine de JDK, exemple: Dans le dossier zippé JDK, vous devez l'extraire et pointer la variable système dans le dossier décompressé, pas directement dans le répertoire bin, vous devez pointer JAVA_HOME en tant que variable système et déclarer le dossier bin en tant qu'exécutable.

Exemples:

Linux

Dans votre fichier de configuration shell:

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

Les fenêtres

Dans votre gestionnaire de variables d'environnement:

Définir un nouveau VARIABLE SYSTÈME nommée JAVA_HOME

entrez la description de l'image ici

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 JDK dans macOS, si c'est vous OS, désolé : (

J'espère que ça aide!

 2
Author: , 2020-10-01 21:01:37

Ma solution était: J'ai eu Android SDK Build-Tools, Android Emulator et Android SDK Platform-Tools installés. J'avais aussi JAVA_HOME variable dans les variables d'environnements.

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 cours flutter doctor --android-licenses dans le terminal. En quelque sorte et cela a fonctionné.

 0
Author: Blaaablaaaaaaify, 2020-12-20 15:55:56