尝试接受 Android Studio 许可证时,我不断收到此错误“java.lang.NoClassDefFoundError”
Posted
技术标签:
【中文标题】尝试接受 Android Studio 许可证时,我不断收到此错误“java.lang.NoClassDefFoundError”【英文标题】:When trying to accept Android Studio licenses, I keep getting this error "java.lang.NoClassDefFoundError" 【发布时间】:2020-12-02 21:11:28 【问题描述】:我正在尝试构建我的第一个 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)
【问题讨论】:
【参考方案1】:我检查了 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,它就可以正常工作并且不会出现任何错误。
【讨论】:
【参考方案2】:sdkmanager 需要 JDK 8 才能正常工作,尤其是在运行 --licenses 选项时。它不需要是 oracle JDK,AdoptOpenJDK 对我来说很好。
【讨论】:
以上是关于尝试接受 Android Studio 许可证时,我不断收到此错误“java.lang.NoClassDefFoundError”的主要内容,如果未能解决你的问题,请参考以下文章
不接受某些 Android 许可证。要解决此问题,请运行:flutter doctor --android-licenses