flutter 踩坑總結

導入第三方庫踩坑小結:

(編譯器:VsCode)

( 打算在學習中,使用flutter從新本身的項目,遇到比較特殊的坑,就先記錄一下,持續更新中)git

 

1.把第三方庫 寫入pubspec.yaml文件中github

dependencies:
  flutter:
    sdk: flutter

  # The following adds the Cupertino Icons font to your application.
  # Use with the CupertinoIcons class for iOS style icons.
  cupertino_icons: ^0.1.2
  english_words: ^3.1.0
  
dev_dependencies:
  flutter_test:
    sdk: flutter

2.在底部終端 運行:json

flutter packages get

或點擊右上角的 Get Packages 按鈕api

 

 運行結果:app

Running "flutter packages get" in lwflutterapp...                   0.6s

 3.以後 在main.dart 文件中 導入框架

import 'package:english_words/english_words.dart';

發現報錯,如圖:工具

 

緣由: 依賴庫沒有成功導入,能夠看一下剛纔上面的導入時間只有0.6s,通常不會這麼快,學習

坑1.:把第三方庫的名字寫入文件後,忘記保存,直接運行了 flutter packages get,

 

坑2:當保存以後,再次加載第三方庫,發現會一直卡在這個地方,等半天也沒有結束

緣由: storage.googleapis.com 撞牆了,google

解決方式:spa

1:配置一下環境變量

Linux 或 Mac:

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

Windows:

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

2:執行一下  命令。(無關緊要)

3:而後再執行 

flutter doctor -vflutter packages get

 

坑3:當你配置完環境變量以後,再次運行  flutter packages get的時候發現,flutter的文件是被鎖狀態,由於有一個任務一直未完成狀態,就是剛纔卡死的那個任務,

終端顯示:

Waiting for another flutter command to release the startup lock...

解決方法,以下: 

  一、打開flutter的安裝目錄/bin/cache/  ( /usr/local/flutter/bin/cache)

  二、刪除lockfile文件 

  三、重啓vsCode

 

(補充: 若是還不行,請先檢查安裝的flutter目錄下./flutter/bin/cache/路徑下是否已經有個lockfile文件存在了,由於我使用的是vscode下面的終端窗口,有時即便線程被佔用了,可是不會像電腦終端同樣會有提示信息,被坑過!)

而後就能夠 正常的導入第三方了(須要幾分鐘的時間),導入的頭文件也不會再保存了,

 

坑4:真機運行時:報錯 Error connecting to the service protocol: HttpException: , uri = http://127.0.0.1:1024/ws

網上有人說:這種狀況,通常是調試iOS真機的狀況會出現,打開Xcode->Window->Devices and Simulators,將Connect via network取消

可是個人原本就是取消狀態,全部對我無效,

我殺死進程後,就運行成功了,

 

 

坑5:數據轉模型對象

 剛開始使用的是網上說的 第三方框架  json_annotation: ^2.0.0,這個框架會自動生成一個與model.dart文件對應的model.g.dart文件,可是比較蛋疼的就是model類的屬性,你須要一個一個的手寫,若是少了還行,多了就很蛋疼了。全部棄用了,

因爲vscode的插件比較少,全部我使用在線工具 https://javiercbk.github.io/json_to_dart/,這個在線工具就能夠根據json,自動生成一套轉模型的代碼,只須要改一下類名就好了,可是。。還有坑。因爲 自動生成的代碼裏,在賦值那一塊沒有對類型就行強轉,就形成了 int和double的混亂,常常會報 int 和 double之間的類型錯誤。這是就須要根據數據的實際狀況手動添增強轉 代碼(as int 或 as double),

 

持續踩坑中。。。

相關文章
相關標籤/搜索