簡體   English   中英

在 flutter 緩存中回滾 dart-sdk

[英]Roll back dart-sdk in flutter cache

大約一年前,我寫了一個 flutter 應用程序。 它工作正常,我也能夠發布它進行測試。 在應用程序中,我使用了許多不同的包來執行不同的操作,例如:選擇文件、查看圖像等。我使用的最重要的 package 是

tflite_flutter: 0.5.0
tflite_flutter_helper: 0.1.2

除了上述之外,我的應用程序中還有以下內容:

environment:
 sdk: ">=2.7.0 <3.0.0"

在 build.gradle 文件中:

compileSdkVersion 29
buildToolsVersion "29.0.2"
...
targetSdkVersion 29

最近我決定將 Firebase 實時數據庫添加到應用程序中,只是為了“好玩”。 所以我包括了以下package:

firebase_database: ^9.0.4

但是在添加它之后,我的應用程序無法編譯,我看到消息建議我更新依賴的 package。 為了解決錯誤,我在另一個之后執行了一個 package。 最終,我最終將 android 版本更新到 32,安裝了 v32 構建工具和 sdk 以滿足依賴性問題。 我的應用程序已編譯,但當我運行應用程序時,tensorflow model 無法加載。 正是在這一點上,在查找錯誤消息后,我決定將 flutter 的最低版本增加到 2.12。 但后來看來,我必須用“遲到的”和其他我還沒有想出來並且不想花時間的東西來更新我的所有代碼。 所以,我決定做 git stash。 我原以為這會回滾所有內容,並且我將能夠恢復舊的工作 state 但由於某些奇怪的原因我無法編譯該應用程序。 這是我看到的錯誤之一:

/apps/flutter/.pub-cache/hosted/pub.dartlang.org/filesystem_picker-1.0.3/lib/src/picker_page.dart:187:63: Error: The getter 'title' isn't defined for the class 'TextTheme'. - 'TextTheme' is from 'package:flutter/src/material/text_theme.dart' ('/C:/apps/flutter/packages/flutter/lib/src/material/text_theme.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'title'.
                color: AppBarTheme.of(context).textTheme?.title?.color ??

我能夠挖掘出的所有信息都指向我更新 flutter 版本和其他我不想要的東西的版本。 我希望能夠再次編譯它,因為它是在所有更改之前編譯的。 我覺得這與以下幾點有關:

  • flutter 版本(我現在已將其重置為之前的狀態,但我不確定 dart 的版本)
  • android 構建工具。 即使gradle文件中指定的版本恢復到以前的版本,但我還沒有卸載v32。
  • 或者是其他東西?

問:在所有這些更新之后,我如何回到舊的 state,我應該采取哪些其他步驟才能正確回滾?

更新我注意到 bin/cache/dart-sdk 有一個最近的時間戳。 當我運行升級時,似乎 flutter 可能已經更新了 dart 版本。 之后我找不到使用以前版本的 dart 的方法。 我試圖手動下載它並將其放在緩存中,但它沒有拾取它。 有沒有辦法強制 flutter 使用特定版本的 dart-sdk?

在我運行flutter upgrade之后,dart-sdk 得到了更新。 要回滾它,我只需要運行flutter downgrade ,它就會自動回滾到上次安裝的版本。 出於某種原因,在谷歌上搜索flutter downgrade並沒有得到明確的答案或 flutter 文檔。 有一些答案是指提供一個版本號,但就我而言,我不記得我正在使用的版本。 在 flutter cli 的文檔中,此命令有一行描述:

downgrade   flutter downgrade   Downgrade Flutter to the last active version for the current channel.

https://docs.flutter.dev/reference/flutter-cli

以下是我在經歷上述過程后學到的一些東西:

  1. flutter 降級不接受幾篇文章中建議的版本號參數。
  2. flutter 附帶 dart 的緊密耦合版本。 用戶無法改變這一點。
  3. flutter/bin/cache/dart-sdk -> 這是flutters dart-sdk的安裝位置。 我嘗試更換它,但 flutter 會自動下載它需要的版本。
  4. 如果您正在處理的代碼庫最后一次被觸及是在 2021 年初(一年前),那么如果您想更新 flutter,請准備好面對幾個重大更改並找到不再受支持的軟件包的替代品。
  5. 首選由 flutter 或公司創建的軟件包,因為它們有更多機會保持最新狀態。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM