Lors de l'installation des outils Android sdk, l'erreur suivante est émise :
java.lang.NoClassDefFoundError : javax/xml/bind/annotation/XmlSchema
Pourquoi cela se produit-il et comment y remédier ?
Sortie de débogage :
$ java --version
java 9
Java(TM) SE Runtime Environment (build 9+181)
Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode)
$ brew cask install android-sdk
==> Caveats
We will install android-sdk-tools, platform-tools, and build-tools for you.
You can control android sdk packages via the sdkmanager command.
You may want to add to your profile:
'export ANDROID_SDK_ROOT=/usr/local/share/android-sdk'
This operation may take up to 10 minutes depending on your internet connection.
Please, be patient.
==> Satisfying dependencies
==> Downloading https://dl.google.com/android/repository/sdk-tools-darwin-3859397.zip
Already downloaded: /Users/tomasnovella/Library/Caches/Homebrew/Cask/android-sdk--3859397,26.0.1.zip
==> Verifying checksum for Cask android-sdk
==> Installing Cask android-sdk
==> 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.SdkManagerCli.main(SdkManagerCli.java:117)
==> at com.android.sdklib.tool.SdkManagerCli.main(SdkManagerCli.java:93)
==> 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:185)
==> at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
==> ... 5 more
Error: Command failed to execute!
==> Failed command:
/usr/local/Caskroom/android-sdk/3859397,26.0.1/tools/bin/sdkmanager tools platform-tools build-tools;26.0.1
==> Standard Output of failed command:
==> Standard Error of failed command:
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.SdkManagerCli.main(SdkManagerCli.java:117)
0 votes
Je suppose que votre question est "Quelle est la cause de cette erreur ?" La réponse est qu'il ne peut pas trouver les classes javax.xml.
47 votes
En fait, cette question pose un problème légitime d'installation du SDK Android lorsque l'on dispose de java9.
46 votes
J'ai ce problème, et j'ai copié/collé la première ligne de mon message d'erreur dans Google, et cette question a été le premier résultat qui est apparu. De plus, l'une des réponses ci-dessous l'a résolu. Cette question ne devrait absolument pas être fermée : quelles que soient les règles relatives aux questions, cette question remplit manifestement l'objectif global du site.
1 votes
Supprimez tout ce qui est plus ancien que Java 8 de
/Library/Java/JavaVirtualMachines
7 votes
Le problème se produit avec Java 8 et Java 11 sur Ubuntu 18.04 en utilisant les packages
openjdk-8-jdk
yopenjdk-11-jdk
. Quelqu'un sait-il ce qu'il faut installer pourjavax/xml/bind/annotation/XmlSchema
ou comment éviterjavax/xml/bind/annotation/XmlSchema
dans le NDK ?14 votes
Il ne s'agit pas de la version de Java, mais des outils en ligne de commande. J'ai passé cette erreur Java 16 après avoir installé les outils de ligne de commande. Vous pouvez également trouver la réponse correcte page deux dans cette question.
Android Studio -> SDK Manager -> SDK Tools -> Android SDK Command-line Tools -> Install
0 votes
@ssss, merci. c'est la cause réelle "outils de ligne de commande".