flutter菜鳥踩坑之旅--持續更新中

磨磨蹭蹭兩週多終於跑出來了這個app,接下來分享下過程中主要需要注意的地方與踩過的坑。

 

 

首先來一些基礎的資源信息,比如官網、環境變量配置、基本命令與檢測方式。

1、flutter中文網下載flutter,點擊地址下載,選擇自己需要的版本,下載到目標文件夾然後解壓就行了。

 

 2、配置環境變量

 //在終端輸入 vim  ~/.bash_profile  
//按 i 插入以下內容
//:wq 保存並退出


export PATH=/Users/wangjuan30/Documents/development/flutter/bin:$PATH
export ANDROID_HOME=/Users/wangjuan30/Library/Android/sdk
export PATH=${PATH}:${ANDROID_HOME}/tools
export PATH=${PATH}:${ANDROID_HOME}/platform-tools
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
// 其中/Users/wangjuan30/Documents/development/flutter  爲flutter包解壓縮的位置                                                                   

3、在終端輸入flutter -h ,如果沒有提示命令不存在,如下圖示,則配置成功

4、在終端輸入flutter doctor可以檢測到相關的安裝需求,根據提示進行安裝。

 

後面都是一些環境安裝到成功運行項目過程中遇到的問題

1、問題:運行fultter doctor 一直報錯,如下

CocoaPods installed but not initialized

cocoaPods is used to retrieve the iOS platform side's plugin code that responds to your plugin usage on the Dart side.
  Without resolving iOS dependencies with CocoaPods, plugins will not work on iOS.
  For more info, see https://flutter.dev/platform-plugins
To initialize CocoaPods, run:
  pod setup

解決:


cd ~/.cocoapods/repos //如果沒有該文件,手動新建


git clone https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git master

2、問題:運行flutter run 一直報錯 ops; flutter has exited unexpectedly.

一直找不到原因 無限重裝brew也沒解決,發現是給google發送郵件報錯導致進程的終止

解決:主要禁用通過 Google Analytics 發送數據,造成的程序中斷(以免國內網絡連接失敗問題)

cd flutter //flutter解壓後的文件夾

./bin/flutter config --no-analytics //禁用通過 Google Analytics 發送數據(以免國內網絡連接失敗問題)

3、問題:運行flutter run 報錯如下:

Failed to send crash report due to a network error: 
SocketException: OS Error: 信號燈超時時間已到 , 
errno = 121, address = clients2.google.com, port = 55220

解決:主要原因是國內的網絡訪問google的資源受限,我們這裏改爲阿里雲的資源

第一處修改文件 :android/build.gradle


buildscript {
    ext.kotlin_version = '1.2.71'
    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.1.2'//如果版本過高可以改成3.1.2
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

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

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

第二處修改文件 :flutter包下面的gradle文件,如我的路徑爲:/Users/【本地電腦用戶名】/Documents/development/flutter/packages/flutter_tools/gradle

buildscript {
    repositories {
//需要修改的地方
//        google()
//        jcenter()
        maven{
            url 'https://maven.aliyun.com/repository/jcenter'
        }
        maven{
            url 'http://maven.aliyun.com/nexus/content/groups/public'
        }
        maven{
            url 'https://maven.aliyun.com/repository/google'
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.2'//如果版本過高可以改成3.1.2
    }
}

 

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