安裝和環境配置
安裝和環境配置 - 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