安装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)
今天早上,我遇到了类似的问题(试图使用Unity3D为Android构建)。我最终卸载了JDK9并安装了Java SE Development Kit 8u144。希望这可以帮助。
brew cask uninstall java
brew tap homebrew/cask-versions
brew cask install java8
touch ~/.android/repositories.cfg
brew cask install android-sdk