Flutter第一個應用--踩坑之路

Flutter第一個應用--踩坑之路

安裝

參照官網教程(這裏)下載解壓,以及設置環境變量便可。java

若是你是中國用戶(固然了,咱們都是),參考這篇文章Using Flutter in China,設置一下中國的鏡像。android

好比我用的是zsh,那個人設置以下:shell

export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn

而後使用flutter doctor檢查一下環境,個人以下:macos

  • 個人android studio是綠勾勾,是由於我已經安裝過Flutter插件了
  • 注意上圖我紅色箭頭標註的地方,若是你的沒有經過檢查,按照doctor的提示輸入命令flutter doctor --android-licenses,而後一路Y就行。

建立項目

安裝官網的這篇文章使用AS建立項目,可是你會發現,卡在下面這個頁面好久api

google了好久,獲得一個答案,很暴力。maven

  1. 先打開項目文件夾,看是否已經成功建立了文件。(基本都是已經建立了的)
  2. 而後強制殺死as
  3. 而後從新啓動as,打開已存在的項目
  4. 可是,按照as的提示Get dependencies時,報Waiting for another flutter command to release the startup lock...錯,解決辦法是rm flutter/bin/cache/lockfile

編譯項目

在編譯項目的時候,你會發現,又卡住了,以下圖所示:gradle

廣大網友們也踩過這些坑,google一通,無外乎以下:ui

  1. 修改android/build.gradle下的倉庫地址google

    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'}
        }
    }

  1. 修改flutter安裝目錄下./packages/flutter_tools/gradle/flutter.gradle文件,也是改一下倉庫地址url

    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.

相關文章
相關標籤/搜索