web-dev-qa-db-fra.com

Flutter.io Android Status Status Unknown

[!] Android toolchain - développer pour les appareils Android (Android SDK 27.0.3)

• SDK Android a ..\Android\sdk • Emplacement du NDK Android non configuré (facultatif; utile pour la prise en charge du profilage natif) • Plate-forme Android-27, outils de compilation 27.0.3 • Fichier binaire Java sur: C:\Programmes\Android\Android Studio\jre\bin\Java • Version Java OpenJDK Runtime Environment (version 1.8.0_152-release-1024-b02) X Statut de la licence Android inconnu.

Je reçois une erreur avec Android Sdk lorsque je lance Flutter doctor, bien que je puisse toujours créer/exécuter mon appareil. J'étais juste curieux de savoir comment résoudre ce problème. Je pense avoir la version la plus mise à jour du sdk Android téléchargée, mais je ne suis pas sûr de ce qui est arrivé car je ne connaissais pas ce problème la semaine dernière.

Nouvelles questions

Après avoir suivi plusieurs corrections possibles dans les commentaires, cela a entraîné un nouveau problème. J'ai installé de nouvelles versions d'Android sdk P, 8 et 7 avec un nouveau jdk10. Toujours pas assez mis à jour apparemment.

C:\Flutter\flutter>flutter doctor --Android-licenses
A newer version of the Android SDK is required. To update, run:
C:\Users\tdmil\AppData\Local\Android\sdk\tools\bin\sdkmanager --update

C:\Flutter\Flutter> C:\Utilisateurs\Nom d'utilisateur\Appdata\Local\Android\Outils\bin\sdkmanager.bat --update

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
12
tdmiller

Si vous avez mis à jour le SDK Android, les licences ont peut-être changé. En fonction de la manière dont vous avez effectué la mise à jour, vous avez peut-être été invité à accepter les modifications, ou peut-être que cela ne vous empêchera pas de savoir que vous les avez acceptées d'une manière que le flutter peut comprendre.

Pour résoudre le problème, essayez d'exécuter flutter doctor --Android-licenses. Cela devrait vous inciter à accepter les licences (il peut vous demander d’abord, au cas où il vous suffirait de taper y et d’appuyer sur Entrée - bien que cela devrait vous dire cela).

Si vous rencontrez toujours des problèmes après cela, il pourrait être intéressant d’ouvrir un nouveau bogue dans le référentiel Flutter Github ou d’ajouter un commentaire sur un problème existant tel que this , car il peut s'agir de re voir.

21
rmtmckenzie

Voici les étapes qui résolvent mon problème:

  1. Ouvrez votre terminal
  2. tapez flutter doctor --Android-licenses
  3. appuyez sur y pour accepter, ce processus peut avoir lieu plusieurs fois. Terminé!
6

L'erreur:

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

se produit car la version actuelle du SDK est incompatible avec Java 9.

Pour résoudre ce problème, vous pouvez rétrograder votre version de Java vers Java 8 ou, avec une solution de contournement, vous pouvez exporter l'option suivante sur votre terminal:

Linux:

export Java_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules Java.se.ee'

Les fenêtres :

set Java_OPTS=-XX:+IgnoreUnrecognizedVMOptions --add-modules Java.se.ee'

Et pour que cela fonctionne, vous pouvez exporter Java_OPTS dans votre fichier de profil sous linux (.zshrc, .bashrc et etc.) ou ajouter un environnement en permanence sous Windows.


Ensuite, vous pouvez taper la commande Flutter ou sdkmanager:

Battement :

flutter doctor --Android-licenses

sdkmanager :

sdkmanager --licenses

et tapez Y si nécessaire pour accepter les licences.

5
coderade

C'était aussi mon problème même/ # 16025

Pour une exception dans le fil "principal" Java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema Ce problème semble se produire généralement lorsque vous avez déjà installé Java 9. BTW ce n'est pas compatible avec Android-sdk essayez de supprimer Java 9 JDK s'il existe toujours. 

En général, les API JAXB sont considérées comme des API Java EE et, par conséquent, ne sont plus contenus dans le chemin de classe par défaut dans Java SE 9. Java 9 introduit les concepts de modules, et par défaut le fichier Java.se Le module d'agrégat est disponible sur le chemin de classe (ou plutôt, module chemin). Comme son nom l'indique, le module d'agrégat Java.se ne le fait pas inclure les API Java EE qui ont été traditionnellement associées à Java 6/7/8. Heureusement, ces API Java EE fournies dans Les JDK 6/7/8 sont toujours dans le JDK, mais ils ne sont tout simplement pas sur le chemin de classe par défaut. Les API Java EE supplémentaires sont fournies dans la suite modules

Solution à la solution de contournement si vous avez installé Java9/10 

  1. Ouvrez sdkmanager dans votre éditeur.
  2. Ajouter DEFAULT_JVM_OPTS 

Remplacer

DEFAULT_JVM_OPTS='"-Dcom.Android.sdklib.toolsdir=$APP_HOME"'

Avec celui-ci

DEFAULT_JVM_OPTS='"-Dcom.Android.sdklib.toolsdir=$APP_HOME" -XX:+IgnoreUnrecognizedVMOptions --add-modules Java.se.ee'
  1. Enregistrez le fichier et quittez l'éditeur, puis essayez à nouveau d'exécuter la commande.

Pour le statut inconnu de la licence Android, j'ai essayé de résoudre le problème en procédant comme suit:

  1. Ouvrir un terminal
  2. Accédez à l'emplacement de votre SDK Android C:\Utilisateurs% utilisateur%\AppData\Local\Android\Sdk\tools\bin ou ~/Bibliothèque/Android/sdk/tools/bin

  3. Exécutez la commande: ./sdkmanager --license

Références

Échec de l'exécution de sdkmanager --list (SDK Android) avec Java 9

Comment résoudre Java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException dans Java 9

3
Juk

Cette ligne fournie sur la communauté de problèmes GitHub a corrigé mon problème, la voici au cas où cela aiderait quelqu'un d'autre.

@rem Execute sdkmanager

"%Java_EXE%" %DEFAULT_JVM_OPTS% -XX:+IgnoreUnrecognizedVMOptions --add-modules Java.se.ee %Java_OPTS% %SDKMANAGER_OPTS% -classpath "%CLASSPATH%" com.Android.sdklib.tool.sdkmanager.SdkManagerCli %CMD_LINE_ARGS%
3
tdmiller

voici ma solution:

  1. installer SDKMan

    $ curl -s "https://get.sdkman.io" | bash

  2. paramétrer votre bash_profile

    $ source "$HOME/.sdkman/bin/sdkman-init.sh

    $ source ~/.bash_profile

  3. trouver Java SDK, et sélectionnez vouloir installer la version

    $ sdk ls Java

    $ sdk install Java 8.0.192-zulu

  4. copiez le message d’avertissement de votre médecin pour mettre à jour sdkmanager

    $ /Users/YourUserName/Library/Android/sdk/tools/bin/sdkmanager --update

  5. après 1 ~ 4, le refaire 

    $ flutter doctor --Android-licenses

0
ilyi1116

Même problème pour moi, vérifiez votre version de Javaau moins, il doit être 1.8

0
Cesar Rodriguez T
  1. Ouvrez Android Studio.
  2. Allez dans Fichier-> Paramètres. 
  3. Rechercher AndroidSDK.
  4. Mettez à jour votre niveau d'API à la dernière version. 
  5. Rechargez ensuite Android Studio.
0
Mohit Jadav

ouvrez le fichier flutter_console.bat à partir du dossier racine du SDK flutter et exécutez la commande

flutter doctor --Android-licenses

il acceptera les licences des mises à jour nouvellement téléchargées du SDK Android. Vous devez l'exécuter à chaque fois que vous téléchargez et mettez à jour le SDK Android.

0
Kiran Maniya