安装和环境配置
安装和环境配置 - Flutter 中文文档 - Flutter 社区中文资源
打开上面的文档,开始准备Flutter 的安装和环境配置,在 flutter doctor
中遇到了各种报错,好在网友们都有各种解决办法,一搜就能搜到,解决了我遇到的问题,参考资料中都有,不再赘述;
遇到各种问题
运行 flutter doctor 命令查看是否需要安装其它依赖项来完成安装:
flutter doctor
运行报错:
[!] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
X Android license status unknown.
Try re-installing or updating your Android SDK Manager.
不管它直接flutter run
的话,就是报错:
Error connecting to the service protocol: HttpException: Connection closed before full header was received
还是得解决Android license status unknown
这个报错才行,解决办法:
>flutter doctor --android-licenses
>C:/Users/xxx/AppData/Local/Android/Sdk/tools/bin/sdkmanager --update
然后又报错:
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)
... 5 more
看到说是设置:
Windows:
set JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'
有的是:
DEFAULT_JVM_OPTS='"-Dcom.android.sdklib.toolsdir=$APP_HOME" -XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'
试了,再次运行 sdkmanager --update
都不对,报错:
最后,打开C:\Users\xxx\AppData\Local\Android\Sdk\tools\bin\sdkmanager.bat
,编辑:DEFAULT_JVM_OPTSk
看到原值是set DEFAULT_JVM_OPTS="-Dcom.android.sdklib.toolsdir=%~dp0\.."
将其注释掉,
修改为:set DEFAULT_JVM_OPTS="-Dcom.android.sdklib.toolsdir=%~dp0\.." -XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee
@rem set DEFAULT_JVM_OPTS="-Dcom.android.sdklib.toolsdir=%~dp0\.."
set DEFAULT_JVM_OPTS="-Dcom.android.sdklib.toolsdir=%~dp0\.." -XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee
这下好了,重新执行sdkmanager --update
,此时报错变成了:
Error occurred during initialization of boot layer
java.lang.module.FindException: Module java.se.ee not found
看到别人的解决办法是降低java jdk的版本,于是下载了jdk低版本的,仍然不行;
检查了自己的版本,发现是
我的天哪,把我搞懵了,忽然想起来,我们之前用过appcan
开发,用 where
指令查看了一下,果然
于是修改环境变量,把appcan
的path
放在JAVA_HOME
之后,再次查看版本正常
重新打开命令行,运行
没错了,喜不自胜,哈哈哈
然后打开vs code
运行 flutter doctor
,还是报错 X Android license status unknown.
真是崩溃!!!
最后发现是管理员权限的问题,还真是,用管理员权限打开 vs code
,再次 运行 flutter doctor
,大功告成!!!
环境配置成功,三种方式均可运行 flutter doctor
在Android Studio
运行
管理员权限打开vs code
:
debug
模式 热重载:
不用管理员权限运行vs code
,只在vs code
里修改代码,在命令行里运行
vs code
中运行时使用的Android Studio
的模拟器,你也可以用直接用真机。
参考
安装和环境配置 - Flutter 中文文档 - Flutter 社区中文资源
windows + flutter + vscode 安装,配置,运行(详细版本)
flutter doctor时显示X Unable to locate Android SDK的解决方案
stackoverflow: Android License Status Unknown
Flutter踩坑之 Android license status unknown 解决方案
搭建Flutter开发环境踩过的一些坑
运行sdkmanager --update 报错的解决方案
Flutter个人填坑指南详解
set DEFAULT_JVM_OPTS
module java.se.ee not found
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。