0

我正在尝试构建我的第一个 android studio 项目。我不断收到此错误:

Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema

当我尝试构建最简单的“MyFirstApp”项目时,我没有收到此错误。

我试图sdkmanager从终端运行:

cd /Users/username/Library/Android/sdk/tools/bin
./sdkmanager --licenses

以及通过物理进入 sdkmanager 目录,然后双击sdkmanager.

我在两者上都得到了同样的错误。我还更新了我的 Java。那么,为什么我会收到此错误?我该如何解决?

完整的错误如下:

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(BuiltinClassLoader.java:602)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    ... 5 more

另外,只需在此处添加它,以防相关,这是我运行时得到的输出java --version

java 13.0.2 2020-01-14
Java(TM) SE Runtime Environment (build 13.0.2+8)
Java HotSpot(TM) 64-Bit Server VM (build 13.0.2+8, mixed mode, sharing)
4

2 回答 2

0

我检查了 Android Studio 本身内部的 gradle 同步,我发现那里还有另一个错误:

ERROR: Module 'app': platform 'android-29' not found.

这可能是因为我下载了最新的 Android 版本,即 Android R(Android Studio 中的 Android 30),而这个项目可能需要版本 29(Android Q)。因此,一旦我下载并安装了 Android 29,转到工具 -> SDK 管理器,然后重新启动 Android Studio,它就可以正常工作并且不会出现任何错误。

于 2020-08-13T04:31:47.387 回答
0

sdkmanager 需要 JDK 8 才能正常工作,尤其是在运行 --licenses 选项时。它不需要是 oracle JDK,AdoptOpenJDK 对我来说工作得很好。

于 2021-04-14T23:35:28.010 回答