Flutter第一個應用--踩坑之路
安裝
參照官網教程(這里)下載解壓,以及設置環境變量即可。
如果你是中國用戶(當然了,我們都是),參考這篇文章Using Flutter in China,設置一下中國的鏡像。
比如我用的是zsh,那我的設置如下:
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
然后使用flutter doctor
檢查一下環境,我的如下:
- 我的
android studio
是綠勾勾,是因為我已經安裝過Flutter插件了 - 注意上圖我紅色箭頭標注的地方,如果你的沒有通過檢查,按照doctor的提示輸入命令f
lutter doctor --android-licenses
,然后一路Y就行。
創建項目
安裝官網的這篇文章使用AS創建項目,但是你會發現,卡在下面這個頁面很久
google了很久,得到一個答案,很暴力。
- 先打開項目文件夾,看是否已經成功創建了文件。(基本都是已經創建了的)
- 然后強制殺死as
- 然后重新啟動as,打開已存在的項目
- 但是,按照as的提示Get dependencies時,報
Waiting for another flutter command to release the startup lock...
錯,解決辦法是rm flutter/bin/cache/lockfile
編譯項目
在編譯項目的時候,你會發現,又卡住了,如下圖所示:
廣大網友們也踩過這些坑,google一通,無外乎如下:
-
修改android/build.gradle下的倉庫地址
repositories { // google() // jcenter() maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/jcenter' } maven { url 'http://maven.aliyun.com/nexus/content/groups/public'} } allprojects { repositories { // google() // jcenter() maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/jcenter' } maven { url 'http://maven.aliyun.com/nexus/content/groups/public'} } }
-
修改flutter安裝目錄下
./packages/flutter_tools/gradle/flutter.gradle
文件,也是改一下倉庫地址buildscript { repositories { //google() //jcenter() maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/jcenter' } maven { url 'http://maven.aliyun.com/nexus/content/groups/public'} } dependencies { classpath 'com.android.tools.build:gradle:3.5.0' } }
Gradle task 'assembleDebug' 結束后又報下面的錯誤
* What went wrong: Execution failed for task ':flutter:javaPreCompileDebug'. > Could not resolve all files for configuration ':flutter:debugCompileClasspath'. > Could not find io.flutter:flutter_embedding_debug:1.0.0-5b952f286fc070e99cf192775fa5c9dfe858b692. Required by: project :flutter > Could not find io.flutter:arm64_v8a_debug:1.0.0-5b952f286fc070e99cf192775fa5c9dfe858b692. Required by: project :flutter > Could not find io.flutter:x86_debug:1.0.0-5b952f286fc070e99cf192775fa5c9dfe858b692. Required by: project :flutter > Could not find io.flutter:x86_64_debug:1.0.0-5b952f286fc070e99cf192775fa5c9dfe858b692. Required by: project :flutter
我參考csdn這篇文章,修改了下圖這幾個文件:
# 父路徑是/opt/flutter/packages/flutter_tools/gradle aar_init_script.gradle flutter.gradle resolve_dependencies.gradle
將https://storage.googleapis.com/download.flutter.io
換成http://download.flutter.io
(也可以是https://storage.flutter-io.cn/download.flutter.io
),修改內容如下圖:
至此,終於編譯成功了。
Performing hot reload...
Syncing files to device Pixel 2...
Reloaded 1 of 495 libraries in 584ms.