15

I get an error trying to run sdkmanager

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(Unknown Source)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
        at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
        ... 5 more

How can I fix this as I have tried changing to Java 7, 8 and 10, but none is working.

Mark Rotteveel
  • 100,966
  • 191
  • 140
  • 197
D. Sikilai
  • 467
  • 1
  • 3
  • 17
  • 2
    Does this answer your question? [Getting Android sdkmanager to run with Java 11](https://stackoverflow.com/questions/53076422/getting-android-sdkmanager-to-run-with-java-11) – Mike Hardy Mar 19 '21 at 19:25
  • i was specific: 7,8,10. anyway the issue was solved way back in time. – D. Sikilai Apr 19 '21 at 13:56
  • My issue was specifically a freak issue with build-tools 33.0.0 https://stackoverflow.com/a/68430992/332578 – Jacksonkr Oct 03 '22 at 22:35

3 Answers3

10

I had the issue as default installation of java was v11

java -version
Should be : openjdk version "1.8.0_252"

Fix:
sudo apt-get install openjdk-8-jdk
Don't worry won't overwrite
Then switch to the correct version via
sudo update-alternatives --config java

confirm correct output from java -version

than run sdkmanager again.

Aron Edwards
  • 101
  • 1
  • 4
8

You can try this solution

First open sdkmanager.bat with any text editor

Then find this line

  %JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %SDKMANAGER_OPTS%

And change it to this line

  %JAVA_EXE%" %DEFAULT_JVM_OPTS% --add-modules java.xml.bind %JAVA_OPTS% %SDKMANAGER_OPTS%

I hope this solves your problem.

Amine
  • 2,241
  • 2
  • 19
  • 41
2

I had to do the following to fix this error on Windows 10:

  1. Install JDK 8. I had JDK 12 installed but it did not seem to work with that version.
  2. Add Java to my environment variable Path

To add Java to your environment variable Path do the following:

Go to Computer -> Advanced system settings -> Environment variables -> PATH -> and add the path to your local java bin directory. It looks like this: C:\Program Files\Java\jdk-versionyouhave\bin