说出来可能我自己都不信,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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。