【发布时间】:2023-04-09 07:30:01
【问题描述】:
安装 android sdk 工具时出现以下错误:
java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
为什么会发生这种情况以及如何解决?
调试输出:
$ 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)
【问题讨论】:
-
实际上这个问题是在安装 android sdk 时提出了一个合法问题
-
我遇到了这个问题,我将错误消息的第一行复制/粘贴到谷歌,这个问题是第一个出现的问题。不仅如此,下面的答案之一解决了它。这不应该完全关闭:不管问题的规则是什么,这个问题显然满足了网站的全部目的。
-
从
/Library/Java/JavaVirtualMachines删除任何早于Java 8的东西 -
在 Ubuntu 18.04 上使用包
openjdk-8-jdk和openjdk-11-jdk的 Java 8 和 Java 11 会出现问题。有谁知道为javax/xml/bind/annotation/XmlSchema安装什么,或者如何在NDK 中避免javax/xml/bind/annotation/XmlSchema? -
这与 Java 版本无关。这是关于命令行工具的。安装命令行工具后,我通过了这个错误 Java 16。你也可以在这个问题的第二页找到正确的答案。
Android Studio -> SDK Manager -> SDK Tools -> Android SDK Command-line Tools -> Install