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.<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 指令查看了一下,果然
圖片描述
於是修改環境變量,把appcanpath放在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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章