2017-09-25 133 views
12

安裝android sdk工具時會發出以下錯誤。 java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema未能安裝android-sdk

爲什麼會發生這種情況,如何解決這個問題?

調試輸出:

$ 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

我認爲yoour問題「什麼導致了這個錯誤?」答案是它找不到javax.xml類。 –

+9

其實這個問題要求在安裝android sdk時有一個合法的問題java9 – jontro

+1

我有這個問題,我複製/粘貼我的錯誤信息的第一行到谷歌,這個問題是第一次出現。不僅如此,下面的答案之一解決了它。這應該完全不會被關閉:不管問題的規則是什麼,這個問題都能夠證明該網站的全部目的。 –

回答

34

我今天早上也有類似的問題(試圖建立使用Unity3D的Android)。我最終卸載了JDK9並安裝了Java SE Development Kit 8u144。希望這可以幫助。

  1. brew cask uninstall java#卸載java9
  2. brew tap caskroom/versions
  3. brew cask install java8#安裝java8
  4. touch ~/.android/repositories.cfg#如果沒有這個文件,將發生在下一步的錯誤
  5. brew cask install android-sdk
+0

thx ... brew cask install java現在正在安裝java9,安裝android-sdk時會導致此錯誤。必須安裝java8才能繼續 – tcardoso

+1

1. brew case卸載java#卸載java9 2. brew tap caskroom/versions 3. brew cask install java8#install java8 4. touch〜/ .android/repositories.cfg#without此文件,錯誤將發生在下一步 5. brew木桶安裝android-sdk – Kixoms

+0

得到了在Windows 10的錯誤,試過這個,仍然無法正常工作。有小費嗎? – Vedvart1