接受 SDK 许可证时出现“java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema”

Jas*_*rMW 16 java android apk reactjs react-native

好吧,我正在尝试使用 Android Studio 构建我的 React-Native 应用程序。我第一次在构建时遇到这个错误:

Failed to install the following Android SDK packages as some licences have not been accepted.
   build-tools;29.0.2 Android SDK Build-Tools 29.0.2
To build this project, accept the SDK license agreements and install the missing components using the Android Studio SDK Manager.
Alternatively, to transfer the license agreements from one workstation to another, see http://d.android.com/r/studio-ui/export-licenses.html

Using Android SDK: C:\Users\jaspe\AppData\Local\Android\Sdk
Run Code Online (Sandbox Code Playgroud)

当弄清楚这一点时,我发现了这个答案,它告诉我接受许可证。但是,在尝试这样做时,我收到以下错误:

C:\Users\jaspe\AppData\Local\Android\Sdk\tools\bin>sdkmanager --licenses
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:581)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
        ... 5 more
Run Code Online (Sandbox Code Playgroud)

为了解决这个问题,我找到了这篇文章。我不使用brew,但我尝试了第二个答案。它没有起作用,很遗憾。然后我发现我没有安装JDK,所以我就这样做了。但安装了最新的 JDK 后,我仍然遇到异常:

C:\Users\jaspe\AppData\Local\Android\Sdk\tools\bin>sdkmanager.bat -licenses
Error occurred during initialization of boot layer
java.lang.module.FindException: Module java.xml.bind not found
Run Code Online (Sandbox Code Playgroud)

现在我不知道该怎么办了。我找到了一个答案,解释我需要编辑我的项目设置,但我认为这不适用于我的项目,老实说,我有点不知所措。有人有这些错误的经验并可以帮助我修复它们吗?我花了整个早上试图弄清楚这一点,我希望构建一个可运行的 .APK 作为演示会更容易......

Mat*_*Pag 47

您使用了错误的目录sdkmanagertools该目录已被弃用

打开Android Studio并安装最新command-line工具:

在此输入图像描述

这将在您的 Android SDK 中创建此文件夹:

...\Android\Sdk\cmdline-tools\latest\bin

现在使用sdkmanagerbin 目录中的 来接受所有许可证:

C:\Users\jaspe\AppData\Local\Android\Sdk\cmdline-tools\latest\bin>sdkmanager.bat --licenses

  • 找到了,*sdkmanager*工具已经从`/tools/bin`移到了`/cmdline-tools/latest/bin` (3认同)