【发布时间】:2022-01-03 06:52:51
【问题描述】:
大约一年前,我写了一个 Flutter 应用。它工作正常,我也能够发布它进行测试。在应用程序中,我使用了许多不同的包来执行不同的操作,例如:选择文件、查看图像等。我使用的最重要的包是
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 实时数据库添加到应用程序中只是为了“好玩”。所以我包括了以下包:
firebase_database: ^9.0.4
但是在添加它之后,我的应用程序无法编译,并且我看到了提示我更新依赖包的消息。为了解决错误,我一个接一个地执行了此操作。最终,我最终将我的 android 版本更新到 32,安装了 v32 构建工具和 sdk 以满足依赖性问题。我的应用程序已编译,但当我运行应用程序时,张量流模型无法加载。正是在这一点上,在查找错误消息后,我决定将 Flutter 的最低版本增加到 2.12。但后来看来,我必须用“迟到”和其他我还没有想出来并且不想花时间的东西来更新我的所有代码。所以,我决定做 git stash。我原以为这会回滚所有内容,并且可以恢复旧的工作状态,但是由于某些奇怪的原因,我无法编译该应用程序。这是我看到的错误之一:
/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 版本(我现在已将其重置为之前的版本,但我不确定 dart 的版本)
- android 构建工具。虽然gradle文件中指定的版本已经恢复到之前的版本但是我还没有卸载v32。
- 还是别的什么?
问。在所有这些更新之后如何恢复到旧状态,我应该采取哪些其他步骤才能正确回滚?
更新 我注意到 bin/cache/dart-sdk 有一个最近的时间戳。看来,当我运行升级时,颤振可能已经更新了飞镖版本。之后我找不到使用以前版本的 dart 的方法。我试图手动下载它并将其放在缓存中,但它没有拾取它。有没有办法强制flutter使用特定版本的dart-sdk?
【问题讨论】:
标签: android flutter flutter-dependencies