flutter重新配置sdk路径_flutter 开发环境配置 遇到各种问题的学习笔记

安装和环境配置

安装和环境配置 - 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.(SchemaModule.java:156)

at com.android.repository.api.SchemaModule.(SchemaModule.java:75)

at com.android.sdklib.repository.AndroidSdkHandler.(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 都不对,报错:

5818e128929108b6a63868a376b11949.png

最后,打开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低版本的,仍然不行;

检查了自己的版本,发现是

66612a84b56d028235dab086c2ca1f24.png

我的天哪,把我搞懵了,忽然想起来,我们之前用过appcan开发,用 where 指令查看了一下,果然

da3948b5befc89c77b07937c35a4569f.png

于是修改环境变量,把appcan的path放在JAVA_HOME之后,再次查看版本正常

重新打开命令行,运行

5756035a725ebfc3d2f7a8a7e567bc9a.png

没错了,喜不自胜,哈哈哈

然后打开vs code 运行 flutter doctor,还是报错X Android license status unknown. 真是崩溃!!!

最后发现是管理员权限的问题,还真是,用管理员权限打开 vs code ,再次 运行 flutter doctor,大功告成!!!

环境配置成功,三种方式均可运行 flutter doctor

在Android Studio 运行

1a6ae2fd8d7083ed1450531325f51ff3.png

管理员权限打开vs code :

cfb7041d0b90c6c67142619ba4d86335.png

debug模式 热重载:

4971800ab34ac6bdd7a836a3e2ac03e9.png

不用管理员权限运行vs code,只在vs code里修改代码,在命令行里运行

a9b96038291d32ae88edee4c8ce7855c.png

vs code中运行时使用的Android Studio的模拟器,你也可以用直接用真机。

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值