首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >安装android-sdk失败:"java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema“

安装android-sdk失败:"java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema“
EN

Stack Overflow用户
提问于 2017-09-25 18:16:07
回答 37查看 380.2K关注 0票数 369

安装android sdk工具时,会发出以下错误:

模式:javax/xml/bind/java.lang.NoClassDefFoundError/XmlSchema

为什么会发生这种情况?如何解决?

调试输出:

代码语言:javascript
复制
$ 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)
EN

回答 37

Stack Overflow用户

回答已采纳

发布于 2017-09-25 20:18:52

今天早上我遇到了一个类似的问题(试图使用Unity3D为安卓构建)。我最终卸载了JDK9并安装了Java SE Development Kit 8u144。希望这能有所帮助。

  1. brew cask uninstall java #卸载java9
  2. brew tap homebrew/cask-versions
  3. brew cask install java8 #安装
  4. touch ~/.android/repositories.cfg #如果没有此文件,下一步
  5. brew cask install android-sdk

将出错

票数 175
EN

Stack Overflow用户

发布于 2020-10-16 21:08:46

我刚刚有了这个错误,通过在Android Studio上下载Preferences > Appearance & Behavior > System Settings > Android SDK > SDK Tools下的Android SDK Command-line Tools (latest)并重新运行flutter doctor --android-licenses解决了这个问题

最后,在.bashrc.zshrc或类似的路径中,在过时的工具之前添加新的工具:

代码语言:javascript
复制
export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin
票数 409
EN

Stack Overflow用户

发布于 2020-12-28 20:11:29

  • I

也有这个错误

代码语言:javascript
复制
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

然后,我执行了以下steps

  • open the android studio > go to configure > select sdk manager > go to sdk tools > make a tick on android sdk command line tools >apply > and wait for installation

操作,而不是卸载最新的java环境(在我的示例中是java 13)并安装

  • java 8

  • 重新启动命令行工具

输入命令flutter doctor

输入命令flutter doctor --android-licenses

通过键入y

  • 并接受所有许可证

票数 100
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46402772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档