暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【经验与坑】Flutter报错:thread "main" java.lang.NoClassDefFoundError:

说出来可能我自己都不信,JDK反向升级到9问题解决。


详述:


前几天配置Flutter开发环境,在最后一步的时候卡住了脖子。

我在命令行中输入 flutter doctor自检的时候,有一个错误。

    [!] Android toolchain - develop for Android devices (Android SDK version 29.0.0)
    ✗ Android license status unknown.
    Try re-installing or updating your Android SDK Manager.
    See https://developer.android.com/studio/#downloads or visit


    我有按照 flutter大夫给的建议 在命令行中运行了 flutter doctor --android-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:583)
      at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
      at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)


      找了我的朋友 谷歌先生,我俩商量了一下,它给我推荐了一个帖子,我一看,哦~ 问题不大!

        https://stackoverflow.com/questions/47150410/failed-to-run-sdkmanager-list-android-sdk-with-java-9


        意思就是 Jdk版本有瑕疵,我电脑里装了两套Jdk,11和8,这里插播一下如何切换 电脑中环境变量的 Jdk版本,在环境变量的 JAVA_HOME那块改目录路径是其一,其二就是要注意。

        需要把这个bin提到最前面,重启后就生效了。


        这里呢,我也是把jdk换成了 9

          链接:https://pan.baidu.com/s/13wszPq0TfT9Y1oU6-pwS9w 
          提取码:8888
          复制这段内容后打开百度网盘手机App,操作更方便哦

          官网下载速度感人,我这有。



          因为根据报错信息 出现了 Model的错误,那么 Model是JDK9的新特性,所以想到了安装一个jdk9测试一下,没想到就成功了。至于为什么 jdk11不行我也是没整明白。


          然后呢,还需要修改一处。

            DEFAULT_JVM_OPTS='"-Dcom.android.sdklib.toolsdir=$APP_HOME" -XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'

            把这个变量改了。


            在C:\Users\xxxx\.android 这个位置新建一个文件 (空的就行无所谓)

            文件名:repositories.cfg

            这样那个警告也会消失。 


            然后继续在命令行中输入 sdkmanager --update命令

            Ok了,问题解决了。

            文章转载自码农智涵的程序人生,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

            评论