【问题标题】:Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema EXCEPTION线程“主”java.lang.NoClassDefFoundError 中的异常:javax/xml/bind/annotation/XmlSchema EXCEPTION
【发布时间】:2021-06-12 12:27:11
【问题描述】:

大家好,我在安装时遇到问题 sdkmanager "system-images;android-27;google_apis_playstore;x86"

当我输入此代码时,它会向我发送一个异常:

我读到我必须安装 java sdk 8 所以我安装了 在我必须指出路径之后,我就这样做了,然后我又遇到了这个异常

我将添加我检查过的颤振医生,这是我的结果:

链接到我支持的文章:No Suitable Android AVD Available

java 版本:

必须在受支持文章中输入的路径:

路径:

【问题讨论】:

  • 请不要将终端输出发布为屏幕截图。而是将文本复制到剪贴板并将其作为预格式化文本粘贴到您的问题中。

标签: android flutter


【解决方案1】:

仔细检查 Android SDK 目录,如果您安装了最新版本的 Android SDK,则有两个版本的sdkmanager.bat。对于旧版本,请确保已安装包 Android SDK 命令行工具(最新)。

tools\bin 中的第一个 cmdline-tools\latest\bin 中的另一个 - 一个可以工作,另一个不行。

您应该使用的最新版本

位于cmdline-tools\latest\bin 的版本是您应该使用的版本。兼容Java 9+,不会出现你遇到的问题。

你不应该使用的过时版本

tools\bin 中的版本已过时,与 Java 9+ 不兼容。如果您使用大于 8 的 Java Runtime 执行它,您将得到以下错误或:

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:522)
        ... 5 more

在 Google 最终删除此版本的 sdkmanager 之前,我建议确保 tools\bin 文件夹不在您的 PATH 环境中。 或者,您可以简单地重命名tools\bin\sdkmanager.bat,以便在执行sdkmanager 时不再执行。

关于为什么这个问题还没有解决的完整故事可以在Google issue 67495440找到。

【讨论】:

  • 我已经有这个问题很长一段时间了,在很多不同的方面。非常感谢您澄清这一点。
  • 在我的 Android SDK 中,我看不到 cmdline-tools 目录...
  • 我知道我必须在我的 SDK 管理器 中安装 Android SDK 命令行工具(最新) 才能获得它。
  • 我在新机器上重新安装了 Android Studio,在尝试编译模板项目时遇到这样的问题非常令人沮丧。我从未在任何 Microsoft 工具中遇到过此类问题。
  • 谢谢,你拯救了我的一天。就我而言,tools/bin/sdkmanager 适用于 java 1.8,而 cmdline-tools/latest/bin/sdkmanager 适用于 java 11。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-04
  • 2021-04-01
  • 2023-04-09
  • 2021-09-13
  • 1970-01-01
相关资源
最近更新 更多