问题描述
@H_502_0@我正在尝试构建我的第一个android studio项目。我不断收到此错误:
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
@H_502_0@当我尝试构建最简单的“ MyFirstApp”项目时,没有出现此错误。
@H_502_0@我尝试从终端运行@R_817_5025@ager
:
cd /Users/username/Library/Android/sdk/tools/bin
./@R_817_5025@ager --licenses
@H_502_0@以及物理上转到@R_817_5025@ager目录,然后双击@R_817_5025@ager
。
@H_502_0@我在两者上都遇到相同的错误。我还更新了Java。那么,为什么会出现此错误?以及我该如何解决?
@H_502_0@完整错误如下:
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.@R_817_5025@ager.@R_817_502[email protected](@R_817_502[email protected]:73)
at com.android.sdklib.tool.@R_817_5025@ager.@R_817_502[email protected](@R_817_502[email protected]: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
@H_502_0@另外,如果需要的话,只需在此处添加它,这就是我在运行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)。因此,一旦我通过工具-> SDK Manager下载并安装了Android 29,然后重新启动了Android Studio,它就可以正常工作并且不会出现任何错误。
,sdkmanager 需要 JDK 8 才能正常工作,尤其是在运行 --licenses 选项时。它不需要是 oracle JDK,AdoptOpenJDK 对我来说效果很好。