153 votes

Flutter.io Android Statut de la licence inconnu

Chaîne d'outils Android - développez pour les appareils Android (Android SDK 27.0.3)

- Android SDK a \Android\sdk - Emplacement Android NDK non configuré (facultatif ; utile pour le support du profilage natif) - Plate-forme Android-27, build-tools 27.0.3 - Binaire Java à : C:\Program Fichiers \Android\Android Studio \jre\bin\java - Version Java OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b02) X Statut de la licence Android inconnu.

J'obtiens une erreur avec Android Sdk lorsque je lance Flutter doctor, bien que je puisse toujours construire/exécuter sur mon appareil. J'étais juste curieux de savoir comment résoudre ce problème. Je crois que j'ai téléchargé la version la plus récente de l'Android Sdk, je ne suis pas sûr de ce qui s'est passé car je n'avais pas ce problème la semaine dernière.

Nouvelles questions

Après avoir suivi plusieurs solutions possibles dans les commentaires, cela a conduit à un nouveau problème. J'ai installé des versions plus récentes d'Android sdk P, 8 et 7 ainsi qu'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:\users\username\appdata\local\android\sdk\tools\bin\sdkmanager.bat --mise à jour

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

3 votes

Cela pourrait être utile pour de futures références. J'utilisais Windows 10 et j'avais une version JDK 11. Comme suggéré par la plupart des gens, j'ai rétrogradé mon JDK à la version 8. Puis j'ai exécuté flutter doctor . Il est toujours dit que la licence doit être acceptée. Puis j'ai lancé flutter doctor --android-licenses et a dit yes pour tous les accords de licence. Enfin, le problème a disparu :). La mise à jour vers JDK 8 résoudra le problème.

0 votes

Cette réponse a été utile pour installer les licences sdk play store à partir de l'interface Android studio. stackoverflow.com/a/65899101/3834325

0 votes

Mise à jour de juillet 2021 : avec flutter 2.2.3, le même problème se pose toujours avec la dernière version de Java 16. L'installation de Java 8 et la définition de JAVA_HOME dans le répertoire d'installation de Java 8 ont résolu l'erreur d'exception Java. OpenJDK 8 fonctionne également.

100voto

rmtmckenzie Points 10854

Si vous avez mis à jour le SDK Android, les licences peuvent avoir changé. En fonction de la façon dont vous avez effectué la mise à jour, vous avez peut-être été invité à accepter les modifications, ou peut-être n'avez-vous pas enregistré le fait que vous les avez acceptées d'une façon que Flutter peut comprendre.

Pour résoudre le problème, essayez d'exécuter flutter doctor --android-licenses . Cela devrait vous inviter à accepter les licences (il se peut qu'il vous le demande d'abord, dans ce cas, tapez simplement y et appuyez sur la touche Entrée - bien qu'il devrait vous le dire).

Si vous rencontrez toujours des problèmes après avoir fait cela, il peut être utile d'ouvrir un nouveau bogue dans la base de données de l'UE. Dépôt Github de Flutter ou l'ajout d'un commentaire sur un problème existant comme celui-ci car ça pourrait être ce que vous voyez.

10 votes

Il me dit qu'une version plus récente du SDK Android est nécessaire. Pour mettre à jour, exécutez : C:\Users\abc\AndroidSDK\tools\bin\sdkmanager -mise à jour. Que dois-je faire ?

0 votes

@HuzaifaAsif avez-vous essayé d'exécuter cette commande ? Avec un peu de chance, elle devrait résoudre le problème. Si cela ne fonctionne pas, vous pouvez chercher une autre question ou en poser une nouvelle.

3 votes

Comme répondu ci-dessous par Tommie C, essayez d'installer java 1.8 manuellement et de définir $JAVA_HOME dans son dossier bin, puis exécutez flutter doctor --Android-licenses et acceptez toutes les licences. J'espère que cela vous aidera.

67voto

coderade Points 2856

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 parce que la version actuelle du SDK est incompatible avec Java 9.

Pour résoudre ce problème, vous pouvez rétrograder votre version de Java à Java 8 ou exporter l'option suivante dans votre terminal :

Linux :

export JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'

Windows :

set JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'

Et pour que cela tienne, vous pouvez exporter les JAVA_OPTS dans votre fichier de profil sous linux ( .zshrc , .bashrc etc.) ou ajouter comme environnement de façon permanente sous Windows.


Ensuite, vous pouvez taper la commande flutter ou sdkmanager :

Flutter :

flutter doctor --android-licenses

sdkmanager :

sdkmanager --licenses

et tapez Y au besoin pour accepter les licences.

4 votes

Une autre option, si vous avez installé à la fois java 11 et 8, est d'exporter JAVA_HOME vers java8 : export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

1 votes

J'ai changé JAVA_HOME en JDK 8 dans les variables d'environnement sous Windows et cela a fonctionné.

3 votes

Cela ne fonctionne pas car java.se.ee est supprimé sur les nouvelles versions de java

11voto

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

  1. Ouvrez votre terminal
  2. type flutter doctor --android-licenses
  3. presse y à accepter, ce processus peut se produire plusieurs fois. C'est fait !

5voto

ilyi1116 Points 32

Voici ma solution :

  1. installer SDKMan

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

  2. définir votre bash_profile

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

    $ source ~/.bash_profile

  3. trouver java sdk, et sélectionner want to install version

    $ sdk ls java

    $ sdk install java 8.0.192-zulu

  4. copier votre message d'avertissement de flutter doctor pour mettre à jour sdkmanager

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

  5. après 1~4, refaites-le

    $ flutter doctor --android-licenses

0 votes

Stop ! java 8.0.192-zulu n'est pas disponible. Causes possibles : * 8.0.192-zulu est une version invalide * les binaires java sont incompatibles avec Darwin * java n'a pas encore été publié.

4voto

tdmiller Points 197

Cette ligne fournie sur GitHub issue community a résolu mon problème, la voici au cas où elle 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%

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