如何清除Flutter的Build缓存?

时间:2018-03-14 13:45:28

标签: dart flutter

flutter的构建似乎存在问题。

我总是需要执行 RUN >每次我将应用程序运行到模拟器或设备时,颤动完全重启

否则,该应用加载了我的代码在2周前开始编码时所拥有的脚手架主体。

Here's the current source on pastebin

children: <Widget>[
          new Opacity(
              opacity: loader_visible ? 1.0 : 0.0,
              child:
              new Container(
                  padding: const EdgeInsets.all(32.0),
                  child: new CircularProgressIndicator()
              )
          ),

虽然这里是生成的渲染树: while here is the resulting render tree

我猜测flutter缓存了旧代码并且从不打扰用新代码替换它,但我不确定它是如何实现的Hot Reload。无论如何,我不认为在我们已经执行完全重建时需要加载旧缓存。

11 个答案:

答案 0 :(得分:23)

您可以运行flutter run

但这很可能是您的IDE或类似问题,因为flutter run会创建一个全新的apk。而热重装仅推动修改。

尝试使用命令行r运行您的应用,然后按RmyButton.addConstraint(NSLayoutConstraint(item: myButton, attribute: .height, relatedBy: .equal, toItem: myButton, attribute: .width, multiplier: 1, constant: 0)) 分别进行热重新加载和完全重新加载。

答案 1 :(得分:3)

如果在android studio中 工具->颤振->清洁

enter image description here

答案 2 :(得分:2)

您可以运行 flutter clean 命令

答案 3 :(得分:1)

我尝试了flutter clean,但这对我没有用。然后我去擦除模拟器的数据,瞧,缓存的问题消失了。如果您拥有Android Studio,则可以按照以下Create and Manage virtual machine启动AVD Manager。否则,您可以使用android SDK中包含的emulator.exe命令行擦除模拟器的数据。只需在Start the emulator from the command line上按照此说明进行操作即可。

答案 4 :(得分:1)

在dart-tools文件夹,android文件夹和iOS文件夹中自动生成一个临时文件时,会在应用程序运行时生成构建缓存。 Clear命令将删除flutter项目中的构建工具和dart目录,因此当我们重新编译该项目时,它将从头开始。当我们的项目显示调试错误或运行相关错误时,通常使用此命令。在此答案中,我们将清除Flutter Android iOS App中的Build Cache,然后再次重建Project结构。

  1. 在命令提示符或终端中打开flutter项目文件夹。然后输入flutter clean命令并按Enter。

  2. 执行flutter clean命令后,我们将看到它将使用调试文件删除应用程序中的dart-tools文件夹,android文件夹和iOS文件夹。这可能需要一些时间,具体取决于系统清理项目的速度。

有关更多信息,请参见https://flutter-examples.com/clear-build-cache-in-flutter-app/

答案 5 :(得分:0)

或者,如果您无法运行flutter命令,则可以手动删除/ app-project文件夹下的/ build文件夹。

答案 6 :(得分:0)

我找到了一种在调试代码之前自动运行clean的方法。 (警告,此操作在您每次按下按钮时都会运行,即使是热重启也是如此)

  1. 首先,找到“运行”>“编辑配置”菜单

  2. 在“启动前:外部工具”下,点击“外部”工具“ +”图标, 激活工具窗口。

  3. 运行外部工具
  4. 如此配置。放     工作目录作为项目中的目录。

Edit Configurations. Configurations

Run External Tool Add Flutter Clean

答案 7 :(得分:0)

基本上,有 3种替代方法可以清除您可以尝试的所有内容:

  • flutter clean将删除/build文件夹。
  • 手动删除/build文件夹,该文件夹与flutter clean基本上相同。
  • 或者,正如@RémiRoudsselet指出的那样:重新启动IDE,因为它可能会缓存一些较旧的错误日志并锁定所有内容。

答案 8 :(得分:0)

与我的问题相同。

Flutter的新手。我正在使用VS内置终端执行flutter run,以便在iPhone中运行该应用程序。它给我错误Error when reading 'lib/student_model.dart': No such file...,这是我代码中的旧代码版本。我已将其更改为lib/model/student_model.dart

然后搜索包含该行的'lib / student_model.dart'in the project, it appears file kernel_snapshot.d`行。因此,它使用旧的代码版本来构建项目。

对我来说,Flutter clean无法正常工作。重新启动VS来解决问题,不确定是Flutter还是VS导致问题?

我想知道是否有一些命令无需运行就可以构建flutter项目?

答案 9 :(得分:0)

我遇到了同样的问题,我发现我在 Visual Studio 代码中有两个终端,在第一个终端上它已经运行了我的 flutter 项目,而在另一个终端上我正在运行该线程中共享的不同解决方案。由于这个原因,没有解决方案对我有用。所以有两种方法可以解决这个问题。 1-重新启动visual studio代码(它会自动关闭终端) 2- 停止已经运行 flutter 项目的终端,然后运行 ​​flutter clean 命令。

答案 10 :(得分:-2)

在 IDE 中打开终端输入 flutter clean 并按 Enter 然后热重新加载项目