颤振博士——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个

颤振博士——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

我在上面运行Flatter doctor——android许可证时遇到了这个错误。有人知道为什么会发生这种情况,以及我如何解决它吗?我已经在Flatter控制台上运行了它。

我建议清除android studio dir和android sdk设置,让Flatter自动检测它们的路径:这对我很有用


Android SDK管理器安装Android SDK命令行工具为我完成了这项工作

  • 打开工具SDK管理器
  • 从左侧选择,外观和行为系统设置Android SDK
  • 从顶部菜单中选择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