flutter卸載,flutter清除緩存
Flutter 文件路徑
path_provider是flutter提供的一個獲取應用存儲路徑的插件,它封裝了統一的api來獲取Android和ios兩個平臺的應用存儲路徑,提供的api如下:
站在用戶的角度思考問題,與客戶深入溝通,找到南海網站設計與南海網站推廣的解決方案,憑借多年的經驗,讓設計與互聯網技術結合,創造個性化、用戶體驗好的作品,建站類型包括:網站制作、成都網站設計、企業官網、英文網站、手機端網站、網站推廣、域名與空間、網絡空間、企業郵箱。業務覆蓋南海地區。
getTemporaryDirectory():獲取應用臨時文件夾,該文件夾用來保存應用的緩存,可以隨時刪除用于清緩存,對應于Android的getCacheDir()和ios的NSTemporaryDirectory();
getApplicationDocumentsDirectory():獲取應用安裝路徑,在應用被卸載的時候刪除,對應Android的AppDate目錄和iOS的NSDocumentDirectory目錄;
getExternalStorageDirectory():獲取存儲卡目錄,僅支持Android;
我們通過File和Directory來創建文件和文件夾時首先要獲取到應用的相關路徑,不然會報錯;
File對象和Directory對象封裝在dart:io中,使用時需要先引入該庫:
Directory對象提供listSync()方法獲取文件夾里的內容,該方法返回一個數組;
文件和文件夾都通過delete刪除,delete異步,deleteSync同步;如果一個文件夾是非空的刪除會報錯,刪除非空文件夾需要先清空該文件夾:
flutter對json序列化需要引入 dart:convert 庫:
通過jsonEncode/jsonDecode來轉換json對象:
// 將test目錄下的info.json復制到test2目錄下的info2.json中
引入包archive包:
壓縮:
壓縮前使用ZipFileEncoder先聲明處理壓縮的對象,調用該對象的zipDirectory方法壓縮文件,該方法接受兩個參數,第一個是要壓縮文件/文件夾的路徑,第二個是壓縮包的保存路徑;
解壓:
android studio找不到任何插件
進入設置里面找到 Plugins 選項,Plugins就是指的插件,然后在右邊的列表內進行查詢。里面的內容就是 Android Studio 所安裝的一些列插件,可以對其進行卸載或者去搜索框安裝新的插件。如下圖所示:
注意:安裝完畢后需要對Android Studio進行重啟,然后進去查看插件時候安裝成功。
flutter 打出來ipa的包可以本機安裝嘛
可以
IPA是Apple程序應用文件iPhoneApplication的縮寫,解壓后即可使用,卸載的話也只用刪除程序文件即可(這里不涉及 pkg 格式安裝包)。
flutter項目升級2.0過程填坑記錄
在此之前先推薦看大佬的: 填坑指導
iOS需要注意:
1、flutter2.0要求cocoapods 升級到1.9.0
詳情看這篇博客
2、原來flutter項目中的podfile文件是舊版本的ccocoapods了,刪除podfile和對應的.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系統升級)
不指定版本安裝
sudo gem install -n /usr/local/bin cocoapods
說明 :老項目sdk1.17.0===升級到2.0.1,當前所有操作基于win平臺
到此為止環境已經準備妥當,正式進入項目修改。
所有的插件都要適配到空安全,插件是否支持均會有對應說明Null safety,適配過程不確定版本的話,可以使用dio: any,適配完事后再在pubspec.lock文件中查看具體的版本修改過來,實在有部分插件沒有支持的,參考下面
部分插件在適配空安全的版本放棄維護了,得自行更新或尋找替代,如: flutter_swiper 變為 flutter_swiper_null_safety ,插件更新后要注意項目中的用法是否需要更新
2.1.1: 以前采用的是 provide 插件共享全局數據,現在變化為 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升級后字段發生了變化,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
這個報錯一般對應的就是下面的報錯,注意看后面的報錯信息,看是哪個插件報錯。
解決方案: 把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的變化: 官方參考
顏色的屬性發生了變化,由原來的Color 變為了MaterialStatePropertyColor, 這是未了解決不同狀態(pressed、hovered、focused、disabled)下按鈕顏色的變化
例如
8.出現如下警告
9.showSnackBar報錯誤
解決方案: Scaffold換為ScaffoldMessenger
10.textSelectionColor棄用
解決方案:
11.charts_flutter升級后屬性報錯
解決方案:
12.flutter 真機調試無法訪問網絡,dio報錯
解決方案:
android:
ios:
問題12完整參考
當前題目:flutter卸載,flutter清除緩存
文章位置:http://www.xueling.net.cn/article/hodooc.html