Viv*_*ota 267 java windows dart android-studio flutter
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:521)
... 5 more
Run Code Online (Sandbox Code Playgroud)
运行 flutter doctor --android-licenses 时出现上述错误。有谁知道为什么会发生这种情况以及我该如何解决?我已经在颤振控制台上运行它。
sar*_*Don 623
从Android SDK Manager安装Android SDK 命令行工具为我完成了这项工作。
第 1 步的替代方法:WINDOWS:文件>设置(Ctrl+Alt+S)/MAC:Android Studio >首选项
如果您在执行上述步骤后仍遇到问题,您可以尝试将您的系统升级到 JDK 8。升级到 JDK 8 的官方文档可在此处获得。
Mil*_*hen 120
我是 Mac 用户,我解决了这个问题。
这个回答也帮助Windows用户和Linux用户从用户的反馈中解决问题。
起初,这就是我遇到的问题
$ flutter doctor -v
以下命令不适用于我的情况。
$ flutter doctor --android-licenses
解决这个问题的方法是安装
Android SDK Command-line Tools。如何?
您只需要通过以下两个步骤来完成。
步骤 1. 打开 SDK Manager
Top Menu -> Tools -> SDK Manager
步骤 2. 安装命令行工具
Android Studio 安装完成后,您可以执行以下操作。
$ flutter doctor --android-licenses
多次说是后,所有的Android许可证都已签署。
再次请颤振医生检查。
您可以看到已 接受所有 Android 许可证。
恭喜,您已完成此任务!
小智 61
我遇到了同样的问题,通过从 android studio 安装 coomand-line 工具解决了它
单击文件,设置然后在搜索栏上键入 sdk 并单击 android sdk
然后点击sdk工具,勾选android命令行工具框,点击应用允许下载。然后尝试flutter doctor --android-licenses
在您的 cmd上再次运行,您将被提示接受许可证
小智 13
似乎您遇到了 JDK 异常,当您没有在系统变量上设置JAVA_HOME或者您几乎设置了 JDK 但在错误的文件夹中或者您正在尝试运行 SDK 管理器(它允许您接受Android 许可证)使用错误的 JDK。
如果是 JDK 9 或更高版本:
实际上,Android SDK Manager 仅适用于在Android 开发的 JDK 8 版本上编译的 Gradle ,因此,如果您已经在系统变量上设置了最新的 JDK 版本,请考虑将其降级到 JDK 版本 8。
这个版本对我来说很好用:https : //www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
如果已经安装了 JDK 8
如果您手动将 JDK 文件夹解压缩到某个目录,则可能是您将其设置为“错误”。我的意思是:您指向bin Java 文件夹的方式错误,但它仍然有效。必须将JAVA_HOME设置为JDK的根目录,例如:在JDK压缩文件夹中,您必须将其解压缩并将系统变量指向解压缩文件夹中,不能直接在bin目录中,您必须将JAVA_HOME指向为系统变量并将 bin 文件夹声明为可执行文件。
例子:
Linux
在您的 shell 配置文件中:
export JAVA_HOME="/home/user/jdk1.8.0_261"
export PATH="$PATH:$JAVA_HOME/bin"
Run Code Online (Sandbox Code Playgroud)
视窗
在您的环境变量管理器中:
设置一个名为 JAVA_HOME 的新系统变量
然后,编辑 PATH 变量并向其添加一个新寄存器:
%JAVA_HOME%\bin
Run Code Online (Sandbox Code Playgroud)
实际上,我真的不知道如何在 MacOS 中管理 JDK,如果那是您的操作系统,抱歉:(
希望能帮助到你!
在 Linux 上
Android SDK
仅适用于JDK 8
因此请卸载当前JDK
版本。
通过命令并按Tab 键进行自动完成,删除它显示的所有以开头的内容openjdk-
sudo apt remove openjdk-
Run Code Online (Sandbox Code Playgroud)
现在安装JDK 8
sudo apt install openjdk-8-jdk
Run Code Online (Sandbox Code Playgroud)
您需要 JDK 8,因为在更高版本中删除了所需的文件。
安装后,您可以使用在版本之间切换
sudo update-alternatives --config java
Run Code Online (Sandbox Code Playgroud)
然后选择 JDK 8 的选项。这还将显示您需要的 JDK 8 安装位置:
export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/jre/"
PATH=$PATH:$JAVA_HOME/bin
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
77973 次 |
最近记录: |