颤振博士——android许可证给出了一个java错误 线程“main”java.lang.NoClassDefFoundError中的异常:javax/xml/bind/annotation/XmlSchema 位于com.android.repository.api.SchemaModule$SchemaModule版本。(SchemaModule.java:156) 位于com.android.repository.api.SchemaModule(SchemaModule.java:75) 位于com.android.sdklib.repository.AndroidSdkHandler.(AndroidSdkHandler.java:81) 位于com.android.sdklib.tool.sdkmanager.sdkmanagerli.main(sdkmanagerli.java:73) 位于com.android.sdklib.tool.sdkmanager.sdkmanagerli.main(sdkmanagerli.java:48) 原因:java.lang.ClassNotFoundException:javax.xml.bind.annotation.XmlSchema 位于java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) 位于java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) 位于java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ... 还有5个
我在上面运行Flatter doctor——android许可证时遇到了这个错误。有人知道为什么会发生这种情况,以及我如何解决它吗?我已经在Flatter控制台上运行了它。我建议清除android studio dir和android sdk设置,让Flatter自动检测它们的路径:这对我很有用颤振博士——android许可证给出了一个java错误 线程“main”java.lang.NoClassDefFoundError中的异常:javax/xml/bind/annotation/XmlSchema 位于com.android.repository.api.SchemaModule$SchemaModule版本。(SchemaModule.java:156) 位于com.android.repository.api.SchemaModule(SchemaModule.java:75) 位于com.android.sdklib.repository.AndroidSdkHandler.(AndroidSdkHandler.java:81) 位于com.android.sdklib.tool.sdkmanager.sdkmanagerli.main(sdkmanagerli.java:73) 位于com.android.sdklib.tool.sdkmanager.sdkmanagerli.main(sdkmanagerli.java:48) 原因:java.lang.ClassNotFoundException:javax.xml.bind.annotation.XmlSchema 位于java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) 位于java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) 位于java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ... 还有5个,java,windows,android-studio,flutter,dart,Java,Windows,Android Studio,Flutter,Dart,我在上面运行Flatter doctor——android许可证时遇到了这个错误。有人知道为什么会发生这种情况,以及我如何解决它吗?我已经在Flatter控制台上运行了它。我建议清除android studio dir和android sdk设置,让Flatter自动检测它们的路径:这对我很有用 从Android SDK管理器安装Android SDK命令行工具为我完成了这项工作 打开工具SDK管理器 从左侧选择,外观和行为系统设置Android SDK 从顶部菜单中选择SDK工具 选中Andr
从Android SDK管理器安装Android SDK命令行工具为我完成了这项工作
如果您在执行上述步骤的同时仍面临问题,则可以尝试将系统升级到JDK 8。升级到JDK 8的官方文档可用。您似乎遇到了JDK异常,当您没有在系统变量上设置JAVA_HOME时,就会发生这种情况或您几乎设置了JDK,但在错误的文件夹中或您试图运行SDK管理器(允许您接受Android许可证)使用错误的JDK 如果是JDK 9或更高版本:
实际上,Android SDK管理器只使用Gradle在JDK 8强版版本下对Android开发< /强>进行编译,因此,如果您已经在系统变量上设置了最新的JDK版本,请考虑将其降级为JDK版本8。 这个版本适合我:
如果已经安装JDK 8 如果您手动将JDK文件夹提取到一个目录中,可能您将其设置为“错误”。我的意思是:您将错误的方式指向BinJava文件夹,但它仍然有效。 必须将JAVA_HOME设置为JDK的根,例如: 在JDK压缩文件夹中,您必须将其解压缩并将系统变量指向解压缩文件夹,而不是直接指向bin目录,您必须将JAVA_HOME作为系统变量指向,并将bin文件夹声明为可执行文件 示例: Linux 在shell配置文件中:flutter config --android-studio-dir=""
flutter config --android-sdk=""
窗口
在环境变量管理器中:
设置一个名为JAVA_HOME的新系统变量
然后,编辑PATH变量并向其添加新寄存器:
export JAVA_HOME="/home/user/jdk1.8.0_261"
export PATH="$PATH:$JAVA_HOME/bin"
事实上,我真的不知道如何在MacOS中管理JDK,如果这是您的操作系统,对不起:(
希望它有帮助!在Linux上
androidsdk
仅适用于jdk8
,因此请卸载当前的JDK
版本
超过命令并按tab键,对于autocomplete,删除它显示的以openjdk开头的所有内容
%JAVA_HOME%\bin
现在安装jdk8
sudo apt remove openjdk-
我的解决办法是:
我安装了Android SDK构建工具、Android Emulator和Android SDK平台工具。我还安装了环境变量中的JAVA\u HOME
变量
所以我决定卸载Android SDK构建工具、Android Emulator和Android SDK平台工具并再次安装它们。此外,我删除了
JAVA\u HOME
变量。在这些操作之后,我在终端中运行flatter doctor--Android licenses
。不知怎的,它成功了。首先,你需要知道flatter可以在jdk 8上工作,因此如果安装了其他版本,则需要清除它们,以便完全删除其他版本
注意:这是根据我的情况Ubuntu 20.04,这是根据我的情况,它不保证对你有效
如果您有jdk 11,要卸载,请根据您安装的命令使用两个命令中的一个,或者如果您不知道机器上安装了哪一个命令,则可以同时运行这两个命令
sudo apt install openjdk-8-jdk
如果是其他版本,则用该编号替换11。
如果使用默认的jdk,则要卸载,请使用以下命令
sudo apt purge openjdk-11-jre-headless
sudo apt purge openjdk-11-jre
要确保删除所有与java相关的内容,请运行以下命令
sudo apt purge default-jre
Unrecognized option: --version
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
注意:您可以运行上述所有命令,以确保完全删除与java相关的所有内容
要验证是否已删除所有内容,请运行
sudo apt auto remove
如果您看到下面的错误或java版本,则java尚未卸载
java -v
但如果您得到的响应是找不到java,并且有java安装建议,则表示java已被卸载
java -v
现在我们需要安装jdk 8并运行此命令
sudo apt purge default-jre
Unrecognized option: --version
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
如果一切顺利,请重新启动计算机并运行flatter-doctor
,然后按照说明接受许可证
尊敬的您,希望这篇文章对您有所帮助上述解决方案完全有效,但有一个解决方案我看到的次数比我预期的要少: sdkman=> 安装了这样一个工具后,更改java版本的速度很快(以java 8为例):
对我来说,在Windows10上,答案只是重新安装
sudo update-alternatives --config java
export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/jre/"
PATH=$PATH:$JAVA_HOME/bin