Fix sdkmanager java.lang.NoClassDefFoundError batchfile

2022-09-04 19:48:04

我在尝试运行时收到错误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

我该如何解决这个问题,因为我已经尝试更改为Java 7,8和10,但没有一个工作。


答案 1

我有问题,因为java的默认安装是v11

java -version
应为 :openjdk version "1.8.0_252"

修复:

不用担心不会覆盖
然后切换到正确的版本sudo apt-get install openjdk-8-jdk
sudo update-alternatives --config java

确认输出是否正确java -version

而不是再次运行。sdkmanager


答案 2

您可以尝试此解决方案

首先使用任何文本编辑器打开sdkmanager.bat

然后找到这条线

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

并将其更改为此行

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

我希望这能解决您的问题。


推荐