17

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.

3

3 Answers 3

13

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.

Sign up to request clarification or add additional context in comments.

2 Comments

if you have “Could not find or load main class java.se.ee" after then run JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions'
This solution works for me on Ubuntu 20.10. Thank you.
9

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.

3 Comments

What folder is that file in?
Sorry for the late response, it's under android SDK folder/tools/bin
Note: using --add-modules should work up to Java 10, but anything Java 11 or later will not. See stackoverflow.com/a/43574427/28037
3

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

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.