在原生開發(fā)中, Android 使用 Gradle 來管理依賴, iOS 用 Cocoapods 來管理依賴,Node 中通過 npm來管理依賴。 Flutter 使用配置文件 pubspec.yaml (位于項目根目錄)來管理第三方依賴包。

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、成都微信小程序、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了蚌埠免費建站歡迎大家使用!
Pub 是Google官方的Dart Packages倉庫,類似于node中的npm倉庫,android中的jcenter,我們可以在上面查找我們需要的包和插件,也可以向pub發(fā)布我們的包和插件。
Pub工具 包含管理Package、部署Package和部署命令行應(yīng)用的命令。
如果使用的是Flutter SDK,不要直接使用pub命令。而是使用flutter pub命令,如下:
命令pub get/upgrade/outdated 屬于管理Package的依賴關(guān)系
用于檢索當前 Package 所依賴的其它 Package。如果 pubspec.lock 文件已經(jīng)存在,則根據(jù)該文件中保存的依賴項版本獲取對應(yīng)的依賴項。如有必要,將會創(chuàng)建或更新該文件。
更新 package 依賴
當你添加一個 package 后首次運行 flutter pub get, Flutter 將會保存在 pubspec.lock lockfile 中找到的具體 package 版本。這將確保當你或者團隊中其他開發(fā)者運行 flutter pub get 后能得到相同版本的 package。
如果你想升級到 package 的最新版本,比如使用 package 的最新特性,請運行 flutter pub upgrade 。這將檢索你在 pubspec.yaml 文件中指定的版本約束所允許的最高可用版本。
案例
在flutter項目中導入hive包,在pubspec.yaml文件中添加配置:
執(zhí)行flutter pub get,可以在 pubspec.lock 中看到 hive 版本是2.1.0,這是因為目前hive的最新版本是2.1.0,配置“^”表示向最新版本兼容,具體可查看Package版本管理( ),所以再執(zhí)行flutter pub upgrade 可以看到版本還是2.1.0,這個時候會發(fā)現(xiàn)pub get和 pub upgrade 效果一樣。
但是未來如果 hive 發(fā)布了2.2.0版本,這個時候使用flutter pub get在pubspec.lock中看到hive版本依舊是2.1.0,而執(zhí)行flutter pub upgrade 后在pubspec.lock中看到hive版本就是2.2.0。
現(xiàn)在先在flutter 項目的pubspec.yaml文件添加配置,指定hive版本是2.0.5,如下:
這個時候執(zhí)行flutter pub get后,可以在pubspec.lock的文件中看到hive版本是2.0.5,如果這個時候更改配置為 hive: ^2.0.5,再執(zhí)行flutter pub get就會發(fā)現(xiàn)在pubspec.lock的文件中看到hive版本還是2.0.5,這個時候可以執(zhí)行flutter pub outdated查看依賴的每個 package,如下圖,
可以看到,Upgrable項hive版本號為2.1.0,執(zhí)行flutter pub upgrade 后可以看到在pubspec.lock的文件中看到hive版本是2.1.0
在pubspec.yaml文件添加配置:
lxx_package_demo信息如下圖:
執(zhí)行flutter pub get后在pubspec.lock中看到flutter_log版本是0.0.1
現(xiàn)在修改lxx_package_demo版本號為0.0.2,再執(zhí)行flutter pub get
會發(fā)現(xiàn)版本會及時更新為0.0.2,這個時候執(zhí)行flutter pub get/upgrade效果一樣
參考文檔:
問題原因:版本大小原因
解決方案:點擊ios文件夾-點擊podfile修改如下(親測實用已解決)
解決方案:
刪除IOS工程中的Podfile.lock文件,重新pod install(繼續(xù)執(zhí)行Flutter run操作)即可解決。
問題原因:沒有配置safety相關(guān)
解決方案:可以直接在命令行中執(zhí)行:
然后在Additional run args 這行鍵入一下命令即可。
問題原因:xcode版本更新導致的
解決方案:將爆紅處一行隱藏,運行,點擊fix即可,會顯示正確位置就解決了。
解決方法:
1、找到第一個爆紅文件,將311行問號后面的Colors.white刪除即可
2、 在相同的文件夾內(nèi)找到第二個爆紅文件,找到106行,刪除super.addAllowedPoint這一行即可。
造成原因分析:還不清楚
群友幫助:經(jīng)常出現(xiàn),重啟電腦多試試
解決方案:暫未找到
1.打開 VS Code。
2.打開 查看 命令面板…。
3.輸入 “install”,然后選擇 擴展: 安裝擴展(就是點擊選擇第一行內(nèi)容)。
4.在擴展搜索輸入框中輸入 “flutter”,然后在列表中選擇 Flutter 并單擊 安裝。此過程中會自動安裝必需的 Dart 插件。(選擇第一行并安裝)
5.退出然后重新啟動 VS Code。
1.打開 查看 命令面板…。
2.輸入 “doctor”,選擇 Flutter: Run Flutter Doctor。
3.打開 輸出 (OUTPUT) 面板查看是否有錯誤,確保在不同的輸出選項 (Output Options) 的下拉列表中選擇了 Flutter。
我們在上篇文章已經(jīng)用命令行創(chuàng)建了一個 my_app 的flutter項目了,這里我們就可以使用 vscode 打開看看了
創(chuàng)建新項目 ,則是在命令面板輸 flutter , 選擇 Flutter: New Application Project
運行項目 ,找到 VS Code 的狀態(tài)欄(窗口底部藍色的條)
1.打開 Android Studio。
2.打開插件設(shè)置(在 v3.6.3.0 以上的系統(tǒng)打開 Configure Plugins)。
這里需要先改一下網(wǎng)絡(luò)請求的設(shè)置
3.然后搜索Flutter 插件,選擇并點擊 安裝。
4.當彈出安裝 Dart 插件提示時,點擊 Yes。
5.退出重新啟動編譯器,然后在編譯器主頁面就可以看到多了了 create new flutter project 可供選擇,代表flutter插件安裝成功,我們試著點擊來創(chuàng)建一個新項目。
在此之前先推薦看大佬的: 填坑指導
iOS需要注意:
1、flutter2.0要求cocoapods 升級到1.9.0
詳情看這篇博客
2、原來flutter項目中的podfile文件是舊版本的ccocoapods了,刪除podfile和對應(yīng)的.lock,然后flutter項目重新運行使用它自動生成的podfile文件
3、安裝CocoaPods
卸載cocoapods:sudo gem uninstall cocoapods
查看cocoapods版本:pod --version
指定版本安裝:
sudo gem install -n /usr/local/bin cocoapods -v 1.9.3(新MacOS系統(tǒng)升級)
不指定版本安裝
sudo gem install -n /usr/local/bin cocoapods
說明 :老項目sdk1.17.0===升級到2.0.1,當前所有操作基于win平臺
到此為止環(huán)境已經(jīng)準備妥當,正式進入項目修改。
所有的插件都要適配到空安全,插件是否支持均會有對應(yīng)說明Null safety,適配過程不確定版本的話,可以使用dio: any,適配完事后再在pubspec.lock文件中查看具體的版本修改過來,實在有部分插件沒有支持的,參考下面
部分插件在適配空安全的版本放棄維護了,得自行更新或?qū)ふ姨娲纾?flutter_swiper 變?yōu)?flutter_swiper_null_safety ,插件更新后要注意項目中的用法是否需要更新
2.1.1: 以前采用的是 provide 插件共享全局數(shù)據(jù),現(xiàn)在變化為 provider ,用法改變, 點擊參考 ,以防文章丟失,我重復一遍:
比如:
2.1.2: dio版本升級到4.0.0最新版后,部分用法改變
2.2.1
2.2.2
解決方案:
2.2.3
解決方案:
2.2.4
解決方案:
2.2.5
解決方案:
2.2.6
解決方案:
2.2.7
解決方案:
2.2.8
解決方案: child 換為sliver
2.2.8.1
解決方案: 項目目錄下: android--app-build.gradle --minSdkVersion改為:18 或者19
2.2.8.2
解決方案: 在pubspec.yarm管理里面添加:publish_to
2.2.8.3
解決方案: video_player升級后字段發(fā)生了變化,initialized字段更換為:isInitialized(_controller.value.isInitialized)
2.2.8.4
解決方案:
2.2.8.5
解決方案:
2.2.8.6
解決方案: 方案一:刪除ios目錄下的Podfile.lock 文件然后重新運行 pod install命令
方案二:刪除ios目錄下的Podfile.lock與Podfile文件 重新運行flutter run或flutter build ios
方案三:刪除ios目錄,重新運行 flutter create . 命令,注意有"."這個符號不要忘記
2.2.8.7
這個報錯一般對應(yīng)的就是下面的報錯,注意看后面的報錯信息,看是哪個插件報錯。
解決方案: 把Podfile的版本注釋打開,改為platform :ios, '9.0' 或者是更高的版本
全局替換
1.將new List() 替換為[];
2.TextField的inputFormatters:[WhitelistingTextInputFormatter.digitsOnly] 替換為[FilteringTextInputFormatter.digitsOnly]
3.TextField的inputFormatters:[WhitelistingTextInputFormatter(RegExp("[a-z|A-Z|0-9]"))]替換為FilteringTextInputFormatter.allow(RegExp("[a-z|A-Z|0-9]"))
4.Stack組件中overflow: Overflow.visible改為 clipBehavior: Clip.none;overflow: Overflow.clip改為clipBehavior:Clip.hardEdge
5.ListWheelScrollView組件中clipToSize = false改為clipBehavior: Clip.none,clipToSize = true改為 Clip.hardEdge
6.TextField中maxLengthEnforced: true改為maxLengthEnforcement:MaxLengthEnforcement.enforced
7.FlatButton、RaisedButton、OutlineButton的變化: 官方參考
顏色的屬性發(fā)生了變化,由原來的Color 變?yōu)榱薓aterialStatePropertyColor, 這是未了解決不同狀態(tài)(pressed、hovered、focused、disabled)下按鈕顏色的變化
例如
8.出現(xiàn)如下警告
9.showSnackBar報錯誤
解決方案: Scaffold換為ScaffoldMessenger
10.textSelectionColor棄用
解決方案:
11.charts_flutter升級后屬性報錯
解決方案:
12.flutter 真機調(diào)試無法訪問網(wǎng)絡(luò),dio報錯
解決方案:
android:
ios:
問題12完整參考
一年半前玩過flutter,忘光光...現(xiàn)在是時候重新拾取了。~
啟動頁一般只放圖片或者加幾行文字。
1、創(chuàng)建好flutter項目之后,在lib文件下面新建launch.dart或xx.dart.
2、在根目錄下新建images文件夾,如已有直接放入圖片
3、flutter_yijiake.iml中加入注入該圖片,并注意空格
4、在根目錄下的test/widget_test.dart中更改默認的啟動頁為當前的啟動頁路徑
5、最后重新設(shè)置啟動時的頁面
6、非常簡單的啟動頁面放logo圖片
值得一說的是,flutter框架的UI組件需要已new 組件的形式展開。
1. 建立一個flutter項目的命令
2. 在ios文件夾下,生成pods文件夾
3. Xcode環(huán)境簽名設(shè)置;
把錯誤的版本刪除再添加,可解決簽名錯誤問題;必須先刪除再添加,直接修改可能不起作用。團隊開發(fā),必須使用團隊的簽名。
4.運行創(chuàng)建的flutter項目;
選擇真機、模擬機,點擊運行按鈕,或使用命令運行:
下面兩步是贈送的:
5.新加一款插件,所涉及的命令;
ios 端所涉及的命令
6. 剛更新的插件和已有的插件有沖突怎么辦?
可以試一試以下步驟:
新聞標題:flutter項目搬遷,新建flutter項目
文章地址:http://chinadenli.net/article47/dsepgej.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、自適應(yīng)網(wǎng)站、品牌網(wǎng)站建設(shè)、網(wǎng)站設(shè)計公司、域名注冊、ChatGPT
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)