尝试接受 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
此外,只需在此处添加它,以防相关,这是我在 运行ning 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)
我检查了 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,它工作正常并且没有给出任何错误。
sdkmanager 需要 JDK 8 才能正常工作,尤其是当 运行 --licenses 选项时。它不需要是 oracle JDK,AdoptOpenJDK 对我来说效果很好。
我正在尝试构建我的第一个 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
此外,只需在此处添加它,以防相关,这是我在 运行ning 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)
我检查了 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,它工作正常并且没有给出任何错误。
sdkmanager 需要 JDK 8 才能正常工作,尤其是当 运行 --licenses 选项时。它不需要是 oracle JDK,AdoptOpenJDK 对我来说效果很好。