繁体   English   中英

尝试接受 Android Studio 许可证时,我不断收到此错误“java.lang.NoClassDefFoundError”

[英]When trying to accept Android Studio licenses, I keep getting this error “java.lang.NoClassDefFoundError”

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

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时得到的 output :

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)

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

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

This was probably because I had downloaded the latest Android version, which is Android R (aka Android 30 in Android Studio), while this project probably expected version 29 (Android Q). 因此,一旦我下载并安装了 Android 29,通过转到工具 - > SDK 管理器,并重新启动 Android Studio,它工作正常并且没有给出任何错误。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM