Flutter: 需要频繁重启或抖动清理

创建于 2018-04-15  ·  235评论  ·  资料来源: flutter/flutter

---


以下注释由@tvolkert于 2018 年 10 月 16 日添加

如果您受到此错误的影响,

请填写以下表格!

https://goo.gl/forms/eFPT6A3jAD8clU4o2 (调查收集有关此错误的信息)

---


重现步骤

当我(或我的一个队友)在 AVD 或真实设备上运行 flutter flutter run (或使用 IntelliJ 和 VSCode 上的运行/调试按钮)时,安装的版本总是落后于最新版本,我总是需要重新启动应用程序,有时甚至flutter clean
这是一个问题,尤其是当 AVD/真实设备上的构建崩溃时,这里唯一的解决方案是flutter clean ,即使我停止运行应用程序并再次执行flutter run也是如此。

构建和安装生产 APK 时也会发生同样的情况:
当我运行flutter buildflutter install ,安装的 APK 没有更新。
如果我运行 flutter clean,然后再次运行flutter buildflutter install ,则安装的 APK 是最新的。

颤振医生:

[√] Flutter (Channel beta, v0.2.8, on Microsoft Windows [Versione 10.0.17133.73], locale it-IT)
    • Flutter version 0.2.8 at C:\Users\Edoardo Debenedetti\flutter
    • Framework revision b397406561 (13 days ago), 2018-04-02 13:53:20 -0700
    • Engine revision c903c217a1
    • Dart version 2.0.0-dev.43.0.flutter-52afcba357

[√] Android toolchain - develop for Android devices (Android SDK 27.0.3)
    • Android SDK at C:\Users\Edoardo Debenedetti\AppData\Local\Android\sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-27, build-tools 27.0.3
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b02)
    • All Android licenses accepted.

[√] Android Studio (version 3.1)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b02)

[√] IntelliJ IDEA Ultimate Edition (version 2018.1)
    • IntelliJ at C:\Users\Edoardo Debenedetti\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\181.4203.550
    • Flutter plugin version 23.1.3
    • Dart plugin version 181.4203.498

[√] VS Code, 64-bit edition (version 1.22.2)
    • VS Code at C:\Program Files\Microsoft VS Code
    • Dart Code extension version 2.11.2

[√] Connected devices (2 available)
    • PRA LX1                   • 57UDU17111026756 • android-arm64 • Android 7.0 (API 24)
    • Android SDK built for x86 • emulator-5554    • android-x86   • Android 8.1.0 (API 27) (emulator)

• No issues found!
annoyance crowd regression gradle hot reload xcode tool

最有用的评论

我目前遇到了同样的问题,重新加载如何显示最新的更改,但是如果我冷启动,我会得到一个旧版本,只有 flutter clean 有帮助。

所有235条评论

在这方面并不孤单 - 在 Android Studio 调试中反映更改之前,必须对看似每个代码更改进行“清理”,这令人难以置信。

[√] Flutter (Channel master, v0.3.6-pre.43, on Microsoft Windows [Version 10.0.16299.371], locale en-US)
    • Flutter version 0.3.6-pre.43 at E:\flutter
    • Framework revision 32d1f0a80a (17 hours ago), 2018-04-27 13:34:50 -0700
    • Engine revision e11905c6e5
    • Dart version 2.0.0-dev.50.0.flutter-8d4074175f

[√] Android toolchain - develop for Android devices (Android SDK 27.0.3)
    • Android SDK at C:\Users\jens\AppData\Local\Android\sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-27, build-tools 27.0.3
    • Java binary at: E:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b02)
    • All Android licenses accepted.

[√] Android Studio (version 3.1)
    • Android Studio at E:\Program Files\Android\Android Studio
    • Flutter plugin version 24.0.1
    • Dart plugin version 173.4700
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b02)

[√] IntelliJ IDEA Community Edition (version 2018.1)
    • IntelliJ at E:\Program Files\JetBrains\IntelliJ IDEA Community Edition 181.4203.6
    • Flutter plugin version 22.2.3
    • Dart plugin version 181.4096.12

[√] VS Code, 64-bit edition (version 1.22.2)
    • VS Code at C:\Program Files\Microsoft VS Code
    • Dart Code extension version 2.11.2

[√] Connected devices (1 available)
    • Android SDK built for x86 • emulator-5554 • android-x86 • Android 7.1.1 (API 25) (emulator)

• No issues found!

我目前遇到了同样的问题,重新加载如何显示最新的更改,但是如果我冷启动,我会得到一个旧版本,只有 flutter clean 有帮助。

+1 这里有同样的问题,实际上对我来说,flutter clean 有时也无济于事,我必须手动删除应用程序,然后重新构建它。 这真的很烦人和令人沮丧.. :(

Flutter 也遇到了同样的情况。

无关:有趣的是,我在纯 Android 开发中也遇到了类似的问题。 一旦我在调试后重新启动应用程序,Android 的 Instant Run 也给我留下了旧版本。

@sethladd你能帮忙解决这个问题吗? 这就像主要的专业人士变成了主要的骗子:(

完全同意。 这是一个重大的回归。 不久前,我在一篇博客文章中写道,与 Xamarin 相比,Flutter 工具刚刚工作让我感到非常高兴,但现在它几乎更糟。 热重载太频繁在当前的 dev 和 Master 分支上不起作用

太令人沮丧了。 Android Studio Debug 按钮通常不会考虑最近的代码更改,因此需要在运行前进行 flutter clean 。 从 Android Studio 热重载是行不通的。 如果我运行终端“flutter run”,热重载似乎工作得很好,但当然我没有调试工具。

'flutter run' 命令运行的代码显然与使用 Android Studio 图标运行的代码不同。 到了调试的地步,我必须清理每次运行,这在尝试解决问题时非常可怕。

更新:问题似乎仅限于调试。 使用 Android Studio 的“运行”图标与终端一样快,并尊重最近的代码更改。 出于某种原因,尝试调试总是需要执行 flutter clean 操作以尊重最近的代码更改。

[√] Flutter (Channel master, v0.3.6-pre.43, on Microsoft Windows [Version 10.0.16299.371], locale en-US)
    • Flutter version 0.3.6-pre.43 at E:\flutter
    • Framework revision 32d1f0a80a (7 days ago), 2018-04-27 13:34:50 -0700
    • Engine revision e11905c6e5
    • Dart version 2.0.0-dev.50.0.flutter-8d4074175f

[√] Android toolchain - develop for Android devices (Android SDK 27.0.3)
    • Android SDK at C:\Users\jens\AppData\Local\Android\sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-27, build-tools 27.0.3
    • Java binary at: E:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b02)
    • All Android licenses accepted.

[√] Android Studio (version 3.1)
    • Android Studio at E:\Program Files\Android\Android Studio
    • Flutter plugin version 24.0.1
    • Dart plugin version 173.4700
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b02)

[√] IntelliJ IDEA Community Edition (version 2018.1)
    • IntelliJ at E:\Program Files\JetBrains\IntelliJ IDEA Community Edition 181.4203.6
    • Flutter plugin version 22.2.3
    • Dart plugin version 181.4096.12

[√] VS Code, 64-bit edition (version 1.22.2)
    • VS Code at C:\Program Files\Microsoft VS Code
    • Dart Code extension version 2.11.2

[√] Connected devices (1 available)
    • Android SDK built for x86 • emulator-5554 • android-x86 • Android 7.1.1 (API 25) (emulator)

• No issues found!

@cbracken @tvolkert听起来像是一个糟糕的回归。 有任何想法吗?

@cbracken这可能与您在指纹识别和简化构建代码路径方面的工作有关吗?

会不会是 Windows 的问题? 我也在 Windows 上。 大多数开发人员似乎都在 Mac 上工作,所以这可能是没有更早出现的原因? 只是猜测

顺便说一句,我在 mac 上遇到了这个问题。

上周五,2018年5月4日在下午8时06分,escamoteur [email protected]写道:

会不会是 Windows 的问题? 我也在 Windows 上。 大多数开发人员似乎都在工作
在 Mac 上,所以这可能是没有更早出现的原因? 只是一个
猜测


您收到此消息是因为您发表了评论。
直接回复本邮件,在GitHub上查看
https://github.com/flutter/flutter/issues/16604#issuecomment-386621398
或静音线程
https://github.com/notifications/unsubscribe-auth/AMCOnM-6r56bzBF5c4kpjOkSsAyexeO_ks5tvGdzgaJpZM4TVhip
.

刚刚与@cbracken聊天 - 听起来这似乎是 3 天前在https://github.com/flutter/flutter/pull/17175 的master 上修复的

@ratsey如果你flutter upgrade ,你应该拿起修复。 如果您在 752906498ae9961008e9336a1c88aa14f8ac068f 之后同步到提交时仍然看到它发生,请告诉我们

@dedeswim此修复程序可能会在几周内无法登陆 Beta 频道。 您可以通过运行flutter channel dev或立即使用flutter channel master来更快地看到它😄

@volkert我今天已经在 8 小时前在主频道中升级了 flutter
它对我来说还没有修复。

2018 年 5 月 4 日星期五晚上 8:09,Todd Volkert通知@ github.com
写道:

刚刚和@cbracken聊天https://github.com/cbracken - 听起来像
这已在 3 天前在 master 上修复 #17175
https://github.com/flutter/flutter/pull/17175

@ratsey https://github.com/ratsey如果你抖动升级,你应该
拿起修复。 如果您仍然看到它发生,请告诉我们
你在 7529064 之后同步到提交
https://github.com/flutter/flutter/commit/752906498ae9961008e9336a1c88aa14f8ac068f

@dedeswim https://github.com/dedeswim此修复程序可能不会登陆测试版
频道数周。 你可以通过运行 flutter 更快地看到它
channel dev 或立即使用 flutter channel master 😄


您收到此消息是因为您发表了评论。
直接回复本邮件,在GitHub上查看
https://github.com/flutter/flutter/issues/16604#issuecomment-386622251
或静音线程
https://github.com/notifications/unsubscribe-auth/AMCOnJCY9QCtdFuMdaU2xTt6fFPvVQpcks5tvGgkgaJpZM4TVhip
.

@iampawan很高兴知道 - 我们今天肯定会看看。 这是在 Android 调试版本上?

是的,我只尝试过调试版本。我使用的是 ios 模拟器,甚至
flutter clean 对我不起作用。 我不得不删除该应用程序。 但是之后
我注意到的另一件事是,如果我一次又一次地运行我的应用程序 2-3 次
然后变化​​反映..仍然不知道如何解决这个问题,但发生了
当应用程序在热重载期间冻结时

2018 年 5 月 4 日星期五晚上 8:15,Todd Volkert通知@ github.com
写道:

@iampawan https://github.com/iampawan很高兴知道 - 我们肯定会
今天来看看。 这是在 Android 调试版本上?


你收到这个是因为你被提到了。

直接回复本邮件,在GitHub上查看
https://github.com/flutter/flutter/issues/16604#issuecomment-386624223
或静音线程
https://github.com/notifications/unsubscribe-auth/AMCONNxuo-c8uFwQkrw0C1BBXMqAGcd4ks5tvGmhgaJpZM4TVhip
.

对后续人员进行快速调查,以帮助确定发生这种情况的模式(听起来像 OS 已经被排除,因为我们有来自 Windows 和 MacOS 的报告):以下哪些适用于您:

  • 安卓与 iOS
  • 物理设备与模拟器/模拟器
  • 调试、配置文件或发布版本
  • 安卓构建
  • 视窗机
  • 模拟器。 & 设备
  • 今早更新。
  • 调试仅测试

更奇怪的是,我进行了更改,然后立即重新加载,更改就会显示出来。 我在没有 Flutter clean 的情况下退出并重新启动应用程序,我得到了旧版本。

  1. Android 和 iOS 都 .. 我刚刚验证过
  2. 物理和模拟器设备
  3. 我只试过调试
  4. 对我来说,它在 android studio 中发生得较少,但在我使用 vscode 时发生得更多(
    可能这无关紧要,因为我不知道)

2018 年 5 月 4 日星期五晚上 8:20,Todd Volkert通知@ github.com
写道:

对那些跟随的人进行快速投票,以防它有助于识别模式
发生这种情况的地方(听起来像 OS 已经被排除了,因为我们
有来自 Windows 和 MacOS 的报告):以下哪些适用于
你:

  • 安卓与 iOS
  • 物理设备与模拟器/模拟器
  • 调试、配置文件或发布版本


你收到这个是因为你被提到了。
直接回复本邮件,在GitHub上查看
https://github.com/flutter/flutter/issues/16604#issuecomment-386625760
或静音线程
https://github.com/notifications/unsubscribe-auth/AMCOnP1SMbNrtH7hn11XZOR7SVxFyTtaks5tvGrRgaJpZM4TVhip
.

更奇怪的是,我进行了更改,然后立即重新加载,更改就会显示出来。 我在没有 Flutter clean 的情况下退出并重新启动应用程序,我得到了旧版本。

这听起来像是为应用程序 ( build/app.dill ) 重建内核文件的问题。 初始应用程序运行构建内核文件并从中启动应用程序; 第一次热重新加载将所有应用程序(内核)源代码填充到设备 devfs 文件系统的内存中,并从那里重新加载; 随后的重新加载将文件增量填充到该内存文件系统中。

/cc @aam

17175 应该只修复了配置文件/发布版本的失效问题。 调试版本使用不同的代码路径。

我无法通过简单的代码更改来重现此错误,仅使用命令行工具即可使用主控上的 iOS 调试模拟器对库演示测试进行简单的更改。 我将介绍一个 IDE,它使用守护程序并继续研究它,直到我们弄清楚发生了什么。

@iampawan @escamoteur您是否看到代码更改或资产更改(或两者)的不良行为?

您是否看到代码更改的不良行为或...

如果代码发生变化,是 Dart 代码还是 Java/ObjC 代码?

另外,有没有人在命令行或总是在 IDE 中复制这个?

我无法从 IJ 或命令行(在物理 Android 设备上)复制此内容。
我正在启动 Flutter Gallery,进行简单的更改(lib/gallery/app.dart:128 'Flutter Gallery' -> 'Updated Flutter Gallery'),热重载,确认我看到更改(应用程序的标题更改),停止应用程序,再次启动它,仍然可以看到变化。

这是 Flutter IJ 插件的 24.0.1,Flutter 的master分支:

Flutter 0.3.6-pre.113 • channel master • [email protected]:aam/flutter.git Framework • revision d820e5f3b1 (12 hours ago) • 2018-05-03 22:27:29 -0700 Engine • revision e976be13c5 Tools • Dart 2.0.0-dev.53.0.flutter-e6d7d67f4b

@devoncarew写道

这听起来像是为应用程序 (build/app.dill) 重建内核文件的问题。

下次启动应用程序时,应该重建build/app.dill因为源文件比 dill 文件更新。

@cbracken只尝试过更改 Dart 代码。 如果我们可以帮助处理日志文件(如果有),请告诉我们。
很抱歉延迟,但时区使它变得困难。

如果这有所作为,我正在使用 VS 代码

@escamoteur日志文件会很棒。 如果您使用通常的 flutter 运行参数运行flutter -v run ... ,您将获得更详细的输出。 在 Android Studio 中,您可以编辑运行配置以在附加选项字段中指定—verbose

此日志在flutter clean
afterflutterclean.txt

然后我修改了一些东西并在没有改变的情况下运行它

更改后.txt

然后又是flutter clean

afterfluttercleanafterchange.txt

我压缩了整个项目。 更改后应用程序中的按钮应该是蓝色的,但不是
不知道你是否可以从zip文件中复制它

https://drive.google.com/open?id=1r2lQPVW3TgJpK4RH_kyrRXyePIyw7_UY

PS C:\Entwicklung\BlogTwo way binding in Flutter\two_way_binding> flutter -v doctor
[√] Flutter (Channel master, v0.3.7-pre.9, on Microsoft Windows [Version 10.0.17134.1], locale de-DE)
• 位于 C:\Entwicklung\Flutter 的 Flutter 版本 0.3.7-pre.9
• 框架修订 b2b4665926(19 小时前),2018-05-04 18:17:35 -0700
• 引擎版本 e976be13c5
• Dart 版本 2.0.0-dev.53.0.flutter-e6d7d67f4b

[√] Android 工具链 - 为 Android 设备开发(Android SDK 27.0.3)
• Android SDK 位于 C:\Users\escam\AppData\Local\Android\sdk
• 未配置 Android NDK 位置(可选;对于本机分析支持很有用)
• 平台 android-27,构建工具 27.0.3
• Java 二进制文件位于:C:\Program Files\Android\Android Studio\jrebin\java
• Java 版 OpenJDK 运行时环境(构建 1.8.0_152-release-1024-b02)
• 接受所有Android 许可证。

[√] Android Studio(3.1版本)
• Android Studio 位于 C:\Program Files\Android\Android Studio
• Flutter 插件版本 23.2.2
• Dart 插件版本 173.4700
• Java 版 OpenJDK 运行时环境(构建 1.8.0_152-release-1024-b02)

[√] VS Code,32位版(1.22.2版)
• VS Code 位于 C:\Program Files (x86)\Microsoft VS Code
• Dart 代码扩展版本 2.12.1

[√] 已连接设备(1 个可用)
• 为 x86 构建的 Android SDK • emulator-5554 • android-x86 • Android 6.0 (API 23)(模拟器)

• 未发现问题!

不幸的是,我将在路上直到星期二,

我不得不更改最小 SDK 和 SDK 位置,并且我的 Flutter 进行了升级以使@escamoteur的 zip 在我的设置上运行。

我可以通过热重载更改调试中的按钮颜色,还可以更改调试运行之间的颜色。 底线 - @escamoteur的项目对我

我将在今晚晚些时候通过 Flutter 升级再次尝试使用我的代码。

通过日志的任何见解? @cbracken

@cbracken @tvolkert我正在使用最新的 flutter 版本,今天在使用 vscode 时冻结的情况有所增加,但我没有遇到任何问题,例如应用程序中的最新更改现在反映的不是更早的 .. 但是应用程序在更改某些内容时冻结在有状态的类中,我认为当我使用终端进行热重载时,这种情况很少发生或没有发生

我正在使用最新的颤振版本,今天使用 vscode 时冻结的情况有所增加

你在 Windows 上吗? 4 月更新中似乎存在一个主要错误,导致基于 Chrome 的应用程序冻结:

https://www.engadget.com/2018/05/03/microsoft-windows-10-chrome-cortana-freeze-fix/

不,我使用的是 Macosx 最新版本

在星期二,2018 5月8日,下午5时51分丹尼Tuppeny [email protected]写道:

我正在使用最新的颤振版本,今天冻结了
使用 vscode 时增加

你在 Windows 上吗? 四月更新似乎有一个重大错误
这导致基于 Chrome 的应用程序冻结:

https://www.engadget.com/2018/05/03/microsoft-windows-10-chrome-cortana-freeze-fix/


你收到这个是因为你被提到了。
直接回复本邮件,在GitHub上查看
https://github.com/flutter/flutter/issues/16604#issuecomment-387383846
或静音线程
https://github.com/notifications/unsubscribe-auth/AMCOnDF0oDTkjXNK1ZasxOD9jVuZP8TSks5twY3KgaJpZM4TVhip
.

好吧,不是那个。 当您说“应用程序冻结”时,您是指设备上的移动应用程序(或 VS Code 应用程序)吗? 我认为这与不正确重建可能是一个不同的问题,因此可能值得打开另一个问题。 如果您正在使用 VS Code,我会对您看到冻结期间的Flutter RunObservatory日志文件感兴趣。

@DanTup在 Step1 中看到底部 Appbar 颜色,并且当“执行热重载”通知需要时间时,应用程序也会冻结 - 例如超过 5 秒。 现在第 2 步是当我重建应用程序时,现在更改消失了,如果我进行一些更改并执行热重载,那么所有更改都将被反映.. 现在让我们进行 3 到 4 次热重载,然后应用程序再次冻结.. 有些文件是随附的
step1
step2
天文台.txt

@iampawan我认为这是一个不同的问题; 你能开一个关于它的新问题,以避免将事情与不重建时应该的问题混淆吗? 此外,您能否包括Flutter Run日志和 Observatory 日志,因为该日志包含热重载的说明。 谢谢!

@iampawan该日志似乎不包含任何热重载请求,最后一行是应用程序完成启动时。 你能再试一次吗,但也将它附加到一个新问题 - 我不认为这些问题热重载与应用程序没有在应该重建/部署时相同,并且在同一问题中进行并行对话有点令人困惑。

@DanTup好的,我明天会为此开一个新问题,但暂时让我给你我可以生成的日志文件(更新的)。 同样在制作此视频 - https://youtu.be/q-GtMerSNuY 时,我最终遇到了这个问题,因此您可以观看结尾部分以获得更多理解。 谢谢
flutter_run.txt我不知道该文件是否没有您期望的内容,但我正在上传生成的任何内容

@iampawan谢谢; 那个日志有它。 它实际上包含我担心的内容:

TimeoutException: Request to Dart VM Service timed out: _flutter.listViews({})

请为它打开一个问题; 我最近也看到了其他关于它的报道。

@cbracken我的日志有帮助吗?

对于此线程上的原始问题,我可以确认热重载现在确实考虑了运行之间的代码更改,因此不需要手动“flutter clean”操作。

但是,如果在多次更改/热重载操作后从调试运行切换到非调试运行,仍然需要进行 Flutter Clean。

我今天开始在 Windows 上遇到这个问题(在模拟器和真实设备上),当我在 flutter 的动画教程代码中改变值时,热重载中断。 (https://flutter.io/tutorials/animation/)。

通过删除包含代码的目录结构中的空格,我能够解决热重载问题。 看起来很傻,但它对我有用。

例如我改变了C:\Dev\Flutter Apps\hello_world\animation_examples

C:\Dev\Flutter_Apps\hello_world\animation_examples

颤振医生:

[√] Flutter (Channel dev, v0.5.5, on Microsoft Windows [Version 10.0.17134.112], locale en-AU)
    • Flutter version 0.5.5 at C:\Dev\flutter-sdk
    • Framework revision 020e0ef55c (12 days ago), 2018-06-14 13:17:08 -0700
    • Engine revision c3976b3c71
    • Dart version 2.0.0-dev.61.0.flutter-c95617b19c

[√] Android toolchain - develop for Android devices (Android SDK 27.0.3)
    • Android SDK at C:\Users\Jason\AppData\Local\Android\sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-27, build-tools 27.0.3
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b02)
    • All Android licenses accepted.

[√] Android Studio (version 3.1)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin version 25.0.1
    • Dart plugin version 173.4700
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b02)

[!] VS Code, 64-bit edition (version 1.24.1)
    • VS Code at C:\Program Files\Microsoft VS Code
    • Flutter extension not installed; install from
      https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[√] Connected devices (1 available)
    • Android SDK built for x86 • emulator-5554 • android-x86 • Android 8.1.0 (API 27) (emulator)

! Doctor found issues in 1 category.

我也在 Flutter 的betamaster分支上遇到了这个问题。

自上个月以来,我也面临着同样的颤振问题。 希望 Flutter 团队考虑这个问题并尽快修复它。 因为我们喜欢#Flutter。

很多团队现在都不在办公室,但听起来下一步是让@cbracken查看上面来自@escamoteur的日志。

我有多个用于开发颤振应用程序的应用程序,我遇到了同样的问题,即使在完全重建应用程序后,应用程序也不会更新。 每次执行flutter run后,我都必须热重启才能发生更改。

有什么改善吗? 问题仍然存在。 请修复它。 我们爱

老实说,我不能报告我仍然有问题。 您是否尝试切换到开发或主频道?

我可以确认问题。 如果我更改代码中的某些内容并开始调试,我永远不确定我是否获得了“最新版本”。 如果我通过单步调试...我可以看到它有时会在评论中单步执行代码...现在可以确定的是,我会执行一次颤振并重试。

[√] Flutter (Channel master, v0.5.7-pre.62, on Microsoft Windows [Version 10.0.17134.112], locale en-US)
• 颤振版本 0.5.7-pre.62 位于 C:\flutter
• 框架修订 7ac183794b(2 天前),2018-07-06 15:21:29 -0700
• 引擎修订版 6fe748490d
• Dart 版本 2.0.0-dev.63.0.flutter-4c9689c1d2

[√] Android 工具链 - 为 Android 设备开发(Android SDK 27.0.3)
• Android SDK 位于 C:\Android\android-sdk
• 未配置 Android NDK 位置(可选;对于本机分析支持很有用)
• 平台 android-27,构建工具 27.0.3
• ANDROID_HOME = C:\Android\android-sdk
• Java 二进制文件位于:C:\Program Files\Android\Android Studio\jrebin\java
• Java 版 OpenJDK 运行时环境(构建 1.8.0_152-release-1024-b02)
• 接受所有Android 许可证。

[√] Android Studio(3.1版本)
• Android Studio 位于 C:\Program Files\Android\Android Studio
• Flutter 插件版本 25.0.1
• Dart 插件版本 173.4700
• Java 版 OpenJDK 运行时环境(构建 1.8.0_152-release-1024-b02)

[√] VS Code,64位版(1.25.0版)
• VS Code 位于 C:\Program Files\Microsoft VS Code
• Flutter 扩展版本 2.15.0

所以我们的系统有什么不同会很有趣

@gspencergoog我听说你可能正在关注这样的问题; 不知道你是否看过这个?

@DanTup我见过它,但我认为@cbracken更适合修复它。

任何人都可以在热重载/热重启之前重现明确保存的内容
改善情况? (禁用保存时热重载)
另见颤振/颤振智能#2472

昨天我观察到的唯一一件事是,如果我在调试时更改包文件而不是我的项目的一部分,我必须在保存后显式热重新加载才能生效

@escamoteur感谢您的反馈。 这听起来像#15879

不,不改变包只是在引用的包中进行小的代码更改以进行调试

你的意思是路径依赖?

没有包依赖。 但也许这太令人期待了。

您是否正在修改~/.pub-cache/hosted/... 。 我强烈怀疑您会获得对该用例的任何支持。 这是非常不鼓励的。 否则,如果不更改.packages文件,就无法更改托管包代码。

好吧,我认罪了😁

@escamoteur我不知道它在这里是否有所不同(您可能已经知道这一点),但是如果您想要一种“不受支持的较少”的方式来修改包中的文件,则可以覆盖导入包的路径:

dependency_overrides:
  vm_service_client:
    path: ../../../vm_service_client

@escamoteur我不得不查看我们的热重载代码,但我绝对记得当pub serve存在时(对于网络),这是一个有意的设计决定来观察应用程序项目和path:的传递闭包查看 pub 缓存中的任何内容(该代码不是用户可修改的)或 git 依赖项。 我非常怀疑颤振的情况仍然如此。

@cbracken感谢您的澄清。 对不起,当我偏离原始问题时

问题仍然存在。 任何修复? 请抛出一些信息。

@cbracken这在今天的版本中得到了解决:

Flutter 0.5.8-pre.61 • 频道主 • https://github.com/flutter/flutter
框架 • 修订版 b8b6d41(7 小时前) • 2018-07-17 18:07:54 -0700
引擎 • 修订版 5557e3006e
工具 • Dart 2.0.0-dev.67.0.flutter-84ca27a09e

我只能在热重载后调试更改。 即使是 Flutter clean 也无济于事。
我回滚到git reset --hard e22f99743b4f0bea4a9b8e7703ce5ffbfda37a04
解决了问题现在再次工作

我不确定这个错误的状态。 :/

听起来原来的问题可能已经解决了,但是这里也添加了相关的报告?

听起来@escamoteur最近的评论表明调试在最新的 master 中被破坏了,但这似乎与原始问题无关?

我建议用户仍然在这个空间文件中遇到问题,新的、单独的错误(欢迎你从这里链接到),所以我们可以确保诊断和解决每个错误?

并不真地。 调试有效,但在开始新的调试会话时,它并不总是将最新版本的应用程序推送到设备。 通过热重载完成的所有更改都会被推送并且可以调试。

@escamoteur您是否愿意提交有关该特定问题的新错误? 我很乐意找合适的人来确保我们把它修好。 谢谢!

@eseidel好的,但将是明天。

我认为@escamoteur遇到的问题可能与此处的原始报告相同 - 在设备上启动过时的应用程序?

我认为上面的陈述有点令人困惑,因为它提到了调试,但是当我要求澄清 Gitter 时,他说:

我开始应用程序做了一些更改并进行了热重载 => 出现了更改。 停止应用程序并开始新的 => 获得旧的应用程序版本

如果我正确理解了原始报告,我认为这些可能是相同的。

@escamoteur ,您是否提交了新问题? 如果是这样,请在此处分享链接!

还没有我必须再次重现它,这意味着改变我当前的工作设置,我不得不在最后几天做一些真正的开发

是的,我可以确认我也面临这个问题,我正在使用 VS Code 并且刚刚开始使用 flutter,并且正在开发“启动名称生成器”示例应用程序,并且惊讶地看到该应用程序在重新启动时显示旧代码,进行更改并进行热重载,立即将整个 UI 更新为当前代码,因此推断 apk 从未更新过新更改,来到这里并发现执行 flutter clean 暂时解决了我的问题,但这是一个非常烦人的问题,我们需要一个清理和构建选项。

您能否在此处添加您的 Flutter 医生输出,以便我们知道您使用的是哪个版本?

我在网站上使用了 zip 文件,但似乎我有可用的升级我将更新升级后的状态

[扑]扑医生
╔================================================ ===========================╗
║ 警告:您安装的 Flutter 已经 77 天了。 ║
║ ║
║ 要更新到最新版本,请运行“flutter upgrade”。 ║
╚================================================ ===========================╝

医生摘要(要查看所有详细信息,请运行 flutter doctor -v):
[✓] Flutter (Channel beta, v0.5.1, on Mac OS X 10.12.6 16G1408, locale en-IN)
[✓] Android 工具链 - 为 Android 设备开发 (Android SDK 28.0.2)
[✓] iOS 工具链 - 为 iOS 设备开发 (Xcode 9.2)
[✓] Android Studio(3.1 版)
✗ 未安装 Flutter 插件; 这增加了 Flutter 特定的功能。
✗ 未安装 Dart 插件; 这增加了 Dart 特定的功能。
[!] VS Code(1.26.0 版)
[✓] 连接的设备(1 个可用)

! 医生在 1 个类别中发现了问题。
退出代码 0

是的,请尝试。 您也可以尝试切换到 dev 或 master 分支

好吧,我想它是固定的,我可以断开连接并重新连接,我可以看到正在正确生成和安装新版本,无论如何我可以确保在某个时间点重建所有代码,就像在我完成工作之前一样,因为现在热重载几乎就像在 Android Studio 中即时运行一样,更改仅在会话连接时适用,断开连接并重新连接时,如果我再次运行,它会执行完整构建(有没有更简单的方法来做到这一点)对于 VS 代码?)

@droidluv我认为最近做了一些工作来允许重新连接。 不确定这是否涵盖您的用例。

任何更新 ? 它的2个月。 在此问题解决之前,我无法使用颤振。
我从 vscode 运行它。
日志

NoSuchMethodError: The getter 'isClosed' was called on null.
Receiver: null
Tried calling: isClosedNoSuchMethodError: The getter 'isClosed' was called on null.
Receiver: null
Tried calling: isClosedNoSuchMethodError: The getter 'isClosed' was called on null.
Receiver: null
Tried calling: isClosedNoSuchMethodError: The getter 'isClosed' was called on null.
Receiver: null
Tried calling: isClosedNoSuchMethodError: The getter 'isClosed' was called on null.
Receiver: null
Tried calling: isClosedNoSuchMethodError: The getter 'isClosed' was called on null.
Receiver: null
Tried calling: isClosedNoSuchMethodError: The getter 'isClosed' was called on null.
Receiver: null
Tried calling: isClosed

环境

~/Desktop/hello_world
$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel beta, v0.7.3, on Mac OS X 10.14 18A384a, locale en-CN)
[✓] Android toolchain - develop for Android devices (Android SDK 26.0.2)
[✓] iOS toolchain - develop for iOS devices (Xcode 9.4.1)
[✓] Android Studio (version 3.0)
[✓] VS Code (version 1.27.0)
[✓] Connected devices (1 available)

• No issues found!

@bang88尝试切换到 dev 或 master 并尝试一下。 很长一段时间以来它对我来说很好用。
此错误消息如何与此问题相关联?

@escamoteur我尝试切换到不同的频道并https://github.com/Dart-Code/Dart-Code/issues/1113

@DanTup有没有办法让 vscode 使用--verbose运行 CLI?

@tvolkert是的,单击调试侧栏上的齿轮以创建/打开launch.json ,然后添加一个args部分,因此它看起来像这样:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Flutter",
            "request": "launch",
            "type": "dart",
            "args": [
                "-v"
            ]
        }
    ]
}

输出将出现在Debug Console

screen shot 2018-09-07 at 17 33 20

@bang88您可以尝试根据之前的评论启用详细日志记录并将输出粘贴到此处吗?

谢谢@bang88!

仅供参考,以供将来参考,gist.github.com 是粘贴上述非常大的日志片段的好地方。 然后在此处的评论中粘贴指向要点的链接。

因此,根据该输出,看起来以下行正在返回null

https://github.com/flutter/flutter/blob/cb74e0eda87e35966437ef38a09ef02e23d50206/packages/flutter_tools/lib/src/resident_runner.dart#L71

实际上,稍微挖掘一下,它看起来更像是一种竞争条件。 @bang88您可以尝试在本地应用以下差异,然后再次运行,并包含输出吗? 谢谢!

diff --git a/packages/flutter_tools/lib/src/resident_runner.dart b/packages/flutter_tools/lib/src/resident_runner.dart
index d675e6db3..cdfabe409 100644
--- a/packages/flutter_tools/lib/src/resident_runner.dart
+++ b/packages/flutter_tools/lib/src/resident_runner.dart
@@ -86,12 +86,17 @@ class FlutterDevice {
     if (vmServices == null)
       return <FlutterView>[];

-    return vmServices
-      .where((VMService service) => !service.isClosed)
-      .expand((VMService service) => viewFilter != null
-          ? service.vm.allViewsWithName(viewFilter)
-          : service.vm.views)
-      .toList();
+    try {
+      return vmServices
+        .where((VMService service) => !service.isClosed)
+        .expand((VMService service) => viewFilter != null
+            ? service.vm.allViewsWithName(viewFilter)
+            : service.vm.views)
+        .toList();
+    } catch (error) {
+      printError('Error while getting views: $error -- stack trace: ${StackTrace.current}');
+      rethrow;
+    }
   }

   Future<Null> getVMs() async {

@bang88我删除了您上面的评论,其中包含您还通过 gist 链接提供的内联日志内容。 我希望没事。

@zoechi谢谢。

@bang88您能否尝试在重现此日志时从 VS Code 中捕获日志并将其附加到此处?

在 VS Code 中,从命令面板运行Dart: Capture Logs命令并勾选Debugger (Observatory)Flutter Run类别。 然后重现问题并点击停止日志记录,然后将日志发送给我们。

@bang88在此之前,请您尝试安装此测试版 Dart 代码:

https://github.com/Dart-Code/Dart-Code/releases/tag/v2.18.1-beta.1

修复了一个错误,即使用 Flutter 的详细输出运行可能导致我们比预期更早地附加调试器(因为我们错误地从详细输出中解析了 Observatory URL)。 这看起来可能是您最近的日志中发生的事情,但由于我认为它是由详细日志记录引起的,因此它可能不是原始问题(尽管错误似乎相同令人怀疑)。

@DanTup我已经按照你的建议复制了它。 这是新日志https://gist.github.com/bang88/e140e6a9a3c0c045d24339fc593c5595

我拍了一张 gif:

log

@DanTup看起来我们在app.start事件之后开始发送事件,而不是等待app.started事件。

21696 将使代码在工具方面更具防御性,但我们可能还应该更新 IDE 方面以推迟发送任何事件,直到应用程序启动。

似乎是一个时间问题,取决于开发机器的性能,所以有些人会面对它,而另一些人则不会

Hardware Overview:

  Model Name:   MacBook Pro
  Model Identifier: MacBookPro14,3
  Processor Name:   Intel Core i7
  Processor Speed:  3.1 GHz
  Number of Processors: 1
  Total Number of Cores:    4
  L2 Cache (per Core):  256 KB
  L3 Cache: 8 MB
  Memory:   16 GB
  Boot ROM Version: MBP143.0178.B00
  SMC Version (system): 2.45f0
  Serial Number (system):   xxx
  Hardware UUID:    xxx

@bang88如果您在主频道上flutter upgrade ,您将获得第一个解决方案。 我的猜测是它会导致您在等待启动应用程序时获得更直接的超时,但请尝试一下并报告。

@tvolkert我只是升级到主频道,不再出现错误。 但是屏幕是白色的。 并且热重载也不起作用

~/Desktop/hello_world
$ flutter doctor -v[✓] Flutter (Channel master, v0.8.3-pre.36, on Mac OS X 10.14 18A384a, locale en-CN)
    • Flutter version 0.8.3-pre.36 at /Users/bang/flutter
    • Framework revision d02e67e76e (5 hours ago), 2018-09-12 12:11:59 +0200
    • Engine revision 6f459e2f10
    • Dart version 2.1.0-dev.4.0.flutter-05ccfa8502

[✓] Android toolchain - develop for Android devices (Android SDK 26.0.2)
    • Android SDK at /Users/bang/Library/Android/Sdk
    • Android NDK at /Users/bang/Library/Android/Sdk/ndk-bundle
    • Platform android-26, build-tools 26.0.2
    • ANDROID_HOME = /Users/bang/Library/Android/Sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-915-b08)
    • All Android licenses accepted.

[✓] iOS toolchain - develop for iOS devices (Xcode 9.4.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 9.4.1, Build version 9F2000
    • ios-deploy 1.9.2
    • CocoaPods version 1.5.0

[✓] Android Studio (version 3.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 23.2.1
    • Dart plugin version 171.4424
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-915-b08)

[✓] VS Code (version 1.27.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 2.18.0

[✓] Connected devices (1 available)
    • iPhone X • 3DBD546E-7A81-40E2-AB99-F2843169EC64 • ios • iOS 11.4 (simulator)

• No issues found!

@tvolkert我认为以前可能发生过这种情况,但上面链接的测试版应该已经解决了这个问题。 查看此日志,在app.start事件之后我看不到任何发送到 stdin 的内容(发送到 stdin 的任何数据都应在行中记录[FlutterRun] [Info] ==> ),但似乎Flutter 流程​​的最后一行是:

[10:18:14 GMT+0800 (CST)] [FlutterRun] [Info] <== [ +5 ms] 连接到服务协议: http :

然后在调试会话终止之前什么都不会发生。 我认为在发送app.started事件之前,Flutter 中的某些内容可能会在上面的行之后停止。

我想知道我们是否应该在打印上面一行的代码和发送app.started事件的代码之间添加额外的printTrace s? 我之前也评论过另一个问题(https://github.com/flutter/flutter/issues/18889#issuecomment-420706390),我认为这是一个不同的问题,但似乎在这方面有些停滞不前。

如果我们不想提交额外的日志记录,我们可以在一个分支上做,然后让这些用户拉取它。

这个未来没有及时完成(或者可能永远不会完成):

https://github.com/flutter/flutter/blob/8cf68731e010023e5dcae1f00991f4ac5b1b758b/packages/flutter_tools/lib/src/resident_runner.dart#L71

在它之前和之后都有跟踪语句——我们看到的是之前的,但不是之后的……

如果 VM 也确实出现故障,则 VM 请求可能得不到答复。
当我们遇到这些挂断时,设备上发生了什么? 设备上是否有任何崩溃报告?

没有崩溃只是一个空白屏幕https://github.com/flutter/flutter/issues/16604#issuecomment -420490327

通常,我必须构建应用程序,它会根据更改正确运行应用程序。

实际上刮那个。 我得重新安装应用程序

任何更新?

一段时间以来,我不再需要flutter clean了。

对我来说干净没有任何作用。 我必须从 iOS 模拟器中删除应用程序。 然后 flutter 将尝试运行(并失败)。 如果我第二次运行它,它会起作用。

增量更新逻辑肯定有问题。 如果通过热重载删除或更改了应用程序,则在flutter run期间将无法正确检测到它。

在解决这个问题之前,我不能使用颤振。

我刚在 0.8.2 版本上遇到这个问题

这真的很烦人。

切换到开发频道

仍然是 master 0.10.1-pre.15 的问题

我认为这个问题发生的主要原因之一(通过删除构建文件夹或执行 flutter clean 命令修复),当一些无效的修改应用于代码然后按热重载或热重启然后应用程序崩溃,在此之后任何新的运行因为项目将采用旧的构建(在无效修改之前),直到删除构建文件夹。

仅供参考@gspencergoog这似乎是

@FlutterIODev我同意,崩溃似乎是发生此问题所必需的。 我认为当应用程序冻结时,它也应该是不可恢复的崩溃。 这似乎在我调试时发生得更多,尽管我不完全确定。

我的经验支持这一点。 如果出现异常,我可以保证热重载不起作用,需要清理才能再次工作(教程中没有提到,当你开始时非常混乱)。 如果没有首先使用“clean”,我什至让“build apk”使用反映了以前的调试版本而不是当前文件 - 特别是这似乎是无意的。

是否有任何特定类型的崩溃似乎相关? 也许在启动序列或特定插件中更早发生崩溃? 我想知道我们是否只是没有从某些异常中正确恢复。

只需在几分钟前安装0.9.4 ,它仍然无法正常工作。

任何更新我都遇到了同样的问题。

亲爱的所有受此错误影响的人:

我们正在努力追查此错误的原因,但很难找到确凿的证据。 如果您能填写这份快速表格来帮助我们,那将大有帮助。

https://goo.gl/forms/eFPT6A3jAD8clU4o2

@dedeswim
@ratsey
@escamoteur
@iampawan
@KgotsoK
@jason-codeheroes
@mohith7548
@RedTech64
@jmwatte
@droidluv
@titonton
@szotp
@ElNuru247
@magicleon94
@NotThatBowser
@bang88
@davidgalarza

自从我在开发频道上以来,我已经有一段时间没有看到这个错误了

能够重现它的人 - 当您进入该状态时(当您尝试从主机部署它时设备上的应用程序不再更新时),在执行flutter clean之前是否有可能您要对源代码进行一些更改,执行flutter run --verbose并通过 gist.github.com 共享该输出?

当我遇到此问题时,我从 Android Studio 收到此错误

java.io.IOException: error from app.callServiceExtension: "Bad state: No element"
java.util.concurrent.CompletionException: java.io.IOException: error from app.callServiceExtension: "Bad state: No element"
    at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:292)
    at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:308)
    at java.util.concurrent.CompletableFuture.uniApply(CompletableFuture.java:593)
    at java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:577)
    at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474)
    at java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:1977)
    at io.flutter.run.daemon.DaemonApi$Command.completeExceptionally(DaemonApi.java:375)
    at io.flutter.run.daemon.DaemonApi.dispatch(DaemonApi.java:181)
    at io.flutter.run.daemon.DaemonApi$1.onTextAvailable(DaemonApi.java:141)
    at sun.reflect.GeneratedMethodAccessor95.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.intellij.execution.process.ProcessHandler$5.invoke(ProcessHandler.java:223)
    at com.sun.proxy.$Proxy17.onTextAvailable(Unknown Source)
    at com.intellij.execution.process.ProcessHandler.notifyTextAvailable(ProcessHandler.java:197)
    at com.intellij.execution.process.BaseOSProcessHandler$SimpleOutputReader.onTextAvailable(BaseOSProcessHandler.java:198)
    at com.intellij.util.io.BaseOutputReader.sendText(BaseOutputReader.java:202)
    at com.intellij.util.io.BaseOutputReader.processInput(BaseOutputReader.java:186)
    at com.intellij.util.io.BaseOutputReader.readAvailableNonBlocking(BaseOutputReader.java:105)
    at com.intellij.util.io.BaseDataReader.readAvailable(BaseDataReader.java:85)
    at com.intellij.util.io.BaseDataReader.doRun(BaseDataReader.java:163)
    at com.intellij.util.io.BaseDataReader$1$1.run(BaseDataReader.java:66)
    at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:209)
    at com.intellij.util.io.BaseDataReader$1.run(BaseDataReader.java:63)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.IOException: error from app.callServiceExtension: "Bad state: No element"
    ... 22 more

也许它可以帮助...
``
颤动--版本:

Flutter 0.9.4 • 频道测试版 • https://github.com/flutter/flutter.git
框架 • 修订版 f37c235c32(3 周前) • 2018-09-25 17:45:40 -0400
引擎 • 修订版 74625aed32
工具 • Dart 2.1.0-dev.5.0.flutter-a2eb050044
``
赢10
物理 Android 设备。

能够重现它的人 - 当您进入该状态时(当您尝试从主机部署它时设备上的应用程序不再更新时),在执行flutter clean之前是否有可能您要对源代码进行一些更改,执行flutter run --verbose并通过 gist.github.com 共享该输出?

你去吧: https :

@5ummit你填写了https://goo.gl/forms/eFPT6A3jAD8clU4o2

对于其他人,建议使用https://gist.github.com/发布日志
并且只在此处发布链接以避免此问题成为一英里长。

@5ummit写道:

你去吧:
...
[ +97 ms] [ +578 ms] 跳过内核编译。 指纹匹配。

谢谢,很有帮助。 我们在修改源代码后跳过编译的事实似乎是根本原因。 我们可能需要更多地检测指纹计算,以了解为什么在您编辑源后报告匹配。 只是为了确认 - 您已经在lib/文件夹中编辑了 flutter 应用程序中的源之一,对吗?

@5ummit写道:

你去吧:
...
[ +97 ms] [ +578 ms] 跳过内核编译。 指纹匹配。

@aam写道:
谢谢,很有帮助。 我们在修改源代码后跳过编译的事实似乎是根本原因。 我们可能需要更多地检测指纹计算,以了解为什么在您编辑源后报告匹配。 只是为了确认 - 您已经在lib/文件夹中编辑了 flutter 应用程序中的源之一,对吗?

是的,很多 - 之前我遇到了一个问题,感谢社区,我设法修复了https://github.com/flutter/flutter/issues/23131 。 现在收到这个 - 认为他们有联系吗?

我认为就我个人而言,我的问题源于 Firebase 依赖项,它也发生在https://github.com/flutter/flutter/issues/23131 上。 不过我需要四处看看才能找到更多。

这里: https :

为了重现我执行以下操作。

  • 扑干净
  • 颤动运行 -v
  • 做出改变
  • 热重载更改(带 r)
  • 停止应用程序(带 q)
  • 颤动运行 -v
  • 做另一个改变
  • 热重载(使用 r)
  • 停止应用程序(带 q)
  • 颤动运行 -v

仅显示第一个更改。 必须运行 flutter clean 才能显示第二个更改。
仅供参考,我正在更改文本小部件中使用的静态常量整数

@SUPERETDUPER写道:

这里: https :
...
使用 439 个更新文件将 dart 编译到内核

这似乎表明,当您执行flutter run -v我们确实重建了该应用程序,但是您所说的是该应用程序在没有您的更改(静态常量整数?)明显的情况下运行?

你能在颤振样本计数器 ( flutter create sample ) 应用程序上重现这个吗?

我正在使用颤振计数器示例应用程序。 我所做的只是在列小部件中添加Text("Number: $number") 。 我在MyHomePageState添加了这一行static const int number = 1; MyHomePageState 。 对于更改,我只是将1更改为其他值。

是的,该应用程序确实重建了; 第一次有变化,但第二次没有第二次变化。

@SUPERETDUPER您能否检查在名称中有空格的路径的 _outside_(您的工作文件夹完整路径在IntelliJ IDEA有空格)的某处创建示例颤振项目是否解决了您在应用程序陈旧状态下遇到的问题?

如果这很难解决,那么是否至少有一些标志可以强制每次启动时重新构建颤振?

如果这很难解决,那么是否至少有一些标志可以强制每次启动时重新构建颤振?

它不像标志那么简单,但如果您使用 VS Code,您可以创建一个任务来运行flutter clean并将其设置为preLaunchTask

.vscode/tasks.json

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "flutter clean",
            "type": "shell",
            "command": "flutter clean"
        }
    ]
}

.vscode/launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Flutter",
            "request": "launch",
            "type": "dart",
            "preLaunchTask": "flutter clean"
        }
    ]
}

进一步,您说clean对您不起作用,您必须从设备上卸载该应用程序。 如果情况仍然如此,那么您可能需要将flutter clean命令更改为adb命令以卸载该应用程序。

也就是说,我鼓励在做这件事之前尝试上面列出的东西!

@DanTup确实我需要删除该应用程序。 实际上可能存在两个错误:一个是关于需要运行干净,另一个是关于需要删除 iOS 应用程序。

我进行了更多测试,并创建了可以 100% 运行的示例项目,但仅限于 iOS。 我可能从未在 Android 上遇到过这个问题,但我不确定。

https://github.com/szotp/flutter_stale_app

我添加了有关如何实现错误的详细说明:
https://github.com/szotp/flutter_stale_app/blob/master/lib/main.dart#L29 -L36

编辑:我认为这很重要,该应用程序处于这种冻结状态 - 调试器断点似乎在我的示例中确保了这一点,但是可以在不到达任何断点的情况下冻结应用程序。 在重新启动之前杀死应用程序似乎有帮助,以便 Xcode 构建再次运行。

编辑:当应用程序被冻结并再次启动时,Xcode 构建不会发生,但应用程序显然被杀死并再次启动,丢失了之前累积的所有热重载。

有趣的是,当我使用未成功更新的版本进行调试时,调试器会调出旧代码(来自构建文件夹)。 所以看起来构建文件夹没有被更新?

@szotp谢谢! 我第一次在我的 MacBook 上的 iOS 模拟器上使用您的说明/应用程序进行了复制。

@aam @tvolkert不确定谁在看这个,但我认为它很容易重现。 如果没有,如果(远程)访问我的机器对调试有用,请随时联系我。

@tvolkert你认为你可以分享谷歌表单的结果吗? 我很好奇。

从描述来看,听起来flutter_assets文件之一在这种情况下没有正确同步。

@SUPERETDUPER确定! 这是: survey.pdf 。 它显示了非常不同的反应,对我来说,这个错误可能是由多个潜在原因造成的。

@sztop ,感谢您的精彩
https://github.com/flutter/flutter/issues/16604#issuecomment -431066044 仅在 iOS 模拟器上发生吗? 如果您在从 VSCode 再次启动之前在 iOS 模拟器上退出(关闭)flutter 应用程序怎么办?

@aam似乎删除空格修复了它! 谢谢!

随着#23268(ios模拟器修复)和#23273(路径修复中的空格)登陆主分支,如果可以,请尝试主频道,看看你是否仍然能够重现问题。 谢谢!

@aam现在可以了,谢谢。

我已经尝试过flutter channel master并且问题仍然存在。 暂时放弃😢。 我创建了一个 ubuntu 机器并在那里设置了一个新的开发环境,一切都按预期工作。

@bang88 ,不确定您是否可以从命令行运行 flutter,但是在进行更改并通过 gist.github.com 共享输出后,您是否可以执行flutter run --verbose

@aam日志: https : //gist.github.com/bang88/9b2d69d43b2cb95f008a35ae399159b8

和颤振版本

~/Desktop/my_new_app 3m 34s
$ flutter doctor -v
[✓] Flutter (Channel master, v0.10.2-pre.21, on Mac OS X 10.14 18A389, locale
    en-CN)
    • Flutter version 0.10.2-pre.21 at /Users/bang/development/flutter
    • Framework revision 7aeb539da9 (34 hours ago), 2018-10-21 05:47:10 +0200
    • Engine revision 58cdd53f90
    • Dart version 2.1.0-dev.7.1.flutter-b99bcfd309

[✓] Android toolchain - develop for Android devices (Android SDK 27.0.3)
    • Android SDK at /Users/bang/Library/Android/Sdk
    • Android NDK at /Users/bang/Library/Android/Sdk/ndk-bundle
    • Platform android-27, build-tools 27.0.3
    • ANDROID_HOME = /Users/bang/Library/Android/Sdk
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-915-b08)
    • All Android licenses accepted.

[✓] iOS toolchain - develop for iOS devices (Xcode 10.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 10.0, Build version 10A255
    • ios-deploy 2.0.0
    • CocoaPods version 1.5.0

[✓] Android Studio (version 3.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 23.2.1
    • Dart plugin version 171.4424
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-915-b08)

[✓] VS Code (version 1.28.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 2.19.0

[✓] Connected device (1 available)
    • iPhone X • 57906EE0-7FEB-487A-8698-85E91AF8B004 • ios • iOS 12.0
      (simulator)

• No issues found!

@aam日志: https : //gist.github.com/bang88/9b2d69d43b2cb95f008a35ae399159b8

@bang88 ,我收到此网址的 404 错误。

@aam Github

我可以给你发一封包含要点的电子邮件吗? 或等待 Github 修复服务器问题

@bang88 ,刷新该链接并能够看到要点,谢谢!

您正在编辑什么文件(当您执行flutter run -v )? 那是您项目中的 dart 文件之一还是您导入的包之一? 你在build/snapshot_blob.bin.d看到你正在编辑的文件了吗
日志中的Fingerprint match消息表明由于某种原因我们没有看到更改。

[  +20 ms] Building Runner.app for ...
...
[ +371 ms] Skipping kernel compilation. Fingerprint match.
[ +545 ms] Building bundle

有关于这个问题的消息吗?
我从模拟器(windows)切换到真实设备(android)后就遇到了这个问题。
flutter clean删除了.build但我仍然得到旧的应用程序。 只有在设备上重新安装应用程序后,一切才能按预期工作。

@stannynuytkens你在用什么版本的颤振? 你能从命令行重现吗?

如果是这样,您可以尝试按照前几条消息中@aam的说明进行操作吗?

  • 从手机上卸载应用程序
  • 删除构建文件夹
  • 从控制台运行应用程序
  • 加载后,退出应用程序(使用q
  • 对文件进行更改(注意您更改的是哪个文件)
  • 运行flutter run -verbose

假设这重现了问题,在要点中提供最终flutter run -verbose的输出,以及有关您修改的文件的信息可能会很有用。 还要检查您修改的文件是否出现在build/snapshot_blob.bin.d /

更新:调查结果可在https://docs.google.com/spreadsheets/d/1xCzx-Xwx0Qiv3U5GqnjwkyLlzVmcxEZ73hzQszyzhkY/preview查看

好像没有什么吸烟枪😞

如果您正在开发或管理并经常遇到问题,我添加了禁用所有构建缓存的功能(这不会减慢热重载或热重启的速度)。 这可以通过设置环境变量DISABLE_FLUTTER_BUILD_CACHE=true

如果这改善/没有改善我很想知道的情况,但请记住,这只会在 v1.5.3 及更高版本中生效。

我们已经确认这修复了#27720 中引用的陈旧资产的情况和类似的错误。 为了在这里继续,我们将默认禁用构建缓存。 一旦我们有更好的集成测试覆盖率来证明正确性,这些构建缓存将被单独重新启用。

此更改在一段时间内可能不会成为稳定版本,理想情况下,当下一个稳定版本可用时,我们将重新启用所有构建缓存。 同时,如果 dev 或 master 上的用户可以报告他们是否仍然看到这个问题,这将非常有助于解决所有问题。

我有这个问题,我的同事也是。 我们已经遇到这个问题一个多星期了。

每次我在 iOS 模拟器中运行该应用程序时,都会运行旧版本的代码。 如果我热重启,则运行最新的代码。 Flutter clean 不会改变任何东西。 我在我尝试过的每个模拟器上都遇到了同样的问题,无论我是从 Android Studio、终端还是 XCode 运行。 我还没有尝试过从另一个 IDE 运行。

颤振医生 -v 输出:
[✓] Flutter (Channel stable, v1.2.1, on Mac OS X 10.14.4 18E226, locale en-SE)
• Flutter 1.2.1 版位于 /Users/martinlundberg/Dev/flutter
• 框架修订版 8661d8aecd(2 个月前),2019-02-14 19:19:53 -0800
• 引擎修订版 3757390fa4
• Dart 版本 2.1.2(构建 2.1.2-dev.0.0 0a7dcf17eb)

[✓] Android 工具链 - 为 Android 设备开发(Android SDK 版本 28.0.3)
• Android SDK 位于 /Users/martinlundberg/Library/Android/sdk
• 未配置 Android NDK 位置(可选;对于本机分析支持很有用)
• 平台 android-28,构建工具 28.0.3
• Java 二进制文件位于:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java 版 OpenJDK 运行时环境(构建 1.8.0_152-release-1248-b01)
• 接受所有Android 许可证。

[✓] iOS 工具链 - 为 iOS 设备开发 (Xcode 10.2.1)
• Xcode 位于 /Applications/Xcode.app/Contents/Developer
• Xcode 10.2.1,构建版本 10E1001
• ios 部署 1.9.4
• CocoaPods 1.5.3 版

[✓] Android Studio(3.3 版)
• Android Studio 位于 /Applications/Android Studio.app/Contents
• Flutter 插件版本 33.3.1
• Dart 插件版本 182.5215
• Java 版 OpenJDK 运行时环境(构建 1.8.0_152-release-1248-b01)

[✓] IntelliJ IDEA 终极版(2018.1.3 版)
• IntelliJ 位于 /Applications/IntelliJ IDEA.app
• Flutter 插件版本 29.0.2
• Dart 插件版本 181.4892.1

[✓] IntelliJ IDEA 社区版(2018.1.6 版)
• IntelliJ 位于 /Applications/IntelliJ IDEA CE.app
• Flutter 插件版本 29.0.2
• Dart 插件版本 181.5540.11

[✓] VS 代码(1.33.1 版)
• VS Code 位于 /Applications/Visual Studio Code.app/Contents
• Flutter 扩展版本 2.25.1

[✓] 已连接设备(2 个可用)
• 为 x86 构建的 Android SDK • emulator-5554 • android-x86 • Android 9 (API 28)(模拟器)
• iPhone 6 • 63E1705F-F8E7-4916-8C58-D2307D217DCD • ios • com.apple.CoreSimulator.SimRuntime.iOS-12-2(模拟器)

• 未发现问题!

这些修复仅在 ~ 1.5 及更高版本中出现,因此我预计 1.2.1 中仍然存在问题。 我很惊讶 flutter clean 没有效果 - 在这种情况下,我会尝试重新启动模拟器。

是的,这也让我感到惊讶。

不幸的是,重新启动模拟器没有任何改变。 修复它的唯一方法是热重启; 这使得最新的代码运行。 问题是这不会改变我们在 runApp 之前设置的环境设置:/

那么您是否建议更改为 ~1.5 来解决该问题?

你有不同配置的构建目录吗? 具体来说,如果foo/是您的 flutter 项目的根目录,是否有foo/build目录? 如果是这样,您可以手动删除它并重试吗?

此外,似乎我登陆的修复被标记为 v1.5.8

是的,flutter clean 删除了构建文件夹,然后在构建并再次运行时遇到了同样的问题。

@molundb写道

我有这个问题,我的同事也是。 我们已经遇到这个问题一个多星期了。

你知道什么时候开始的吗? 在此之前您是否运行过旧版本的 flutter 或一周前发生了其他变化?

每次我在 iOS 模拟器中运行该应用程序时,都会运行旧版本的代码。 一世

它只发生在iOS模拟器上吗? 或者您也在物理 iOS 设备或 Android sim/设备上遇到过这种情况?

从命令行flutter run -v运行时,您是否能够重现此问题? 如果是这样,您可以将'n'paste flutter run -v输出复制到https://gist.github.com/并在此处发布链接吗? 基本上,如果您可以清理构建文件夹, flutter run -v应用程序,进行更改,进行热重载,确认未显示任何更改,那么日志将非常有帮助。

@molundb
从模拟器中删除应用程序对我有用。 这通常发生在我遇到未捕获的异常时

@titonton
感谢您的提示,但我已经为模拟器完成了硬件 -> 擦除所有内容和设置...但仍然存在相同的问题。

@aam

你知道什么时候开始的吗? 在此之前您是否运行过旧版本的 flutter 或一周前发生了其他变化?

那是很久以前的事了,我不能说它是什么时候开始发生的,或者不幸的是什么原因造成的。 在它开始发生后,我至少更新了一次 flutter。

它只发生在iOS模拟器上吗? 或者您也在物理 iOS 设备或 Android sim/设备上遇到过这种情况?

它不会发生在 android sim 或设备上。 我现在正在为 iOS 设备充电以进行测试。

基本上,如果您可以清理构建文件夹,flutter run -v 应用程序,进行更改,进行热重载,确认未显示任何更改,那么日志将非常有帮助。

https://gist.github.com/molundb/cda4caa4e90288568db16ba9a0e962d6

现在无法回答您关于 iOS 设备的问题,因为我似乎出于某种原因无法在此 iOS 设备上运行:

在调试模式下在 Iphone 7s iPhone 上启动 lib/main_dev.dart...
使用Xcode项目中指定的开发团队自动签署iOS设备部署:2NJ74JJ92A
运行 Xcode 构建...
Xcode 构建完成。 6.9s
无法构建 iOS 应用程序
Xcode 构建的错误输出:

* 构建失败 *

Xcode 的输出:

=== 使用配置调试构建项目运行程序的目标运行程序 ===
不推荐在 Swift 4 模式下使用 Swift 3 @objc推理。 请解决不推荐使用的@objc推理警告,在启用“使用不推荐使用的 Swift 3 @objc推理”日志记录的情况下测试您的代码,然后通过将“Swift 3 @objc推理”构建设置更改为“Runner”的“默认”来禁用推理目标。
=== 使用配置调试构建项目运行程序的目标运行程序 ===
ld:警告:忽略文件 /Users/martinlundberg/AndroidStudioProjects/tlycs_flutter/ios/Flutter/App.framework/App,文件是为 x86_64 构建的,这不是所链接的架构 (arm64):/Users/martinlundberg/AndroidStudioProjects/tlycs_flutter/ ios/Flutter/App.framework/App
=== 使用配置调试构建项目运行程序的目标运行程序 ===
非胖二进制 /Users/martinlundberg/AndroidStudioProjects/tlycs_flutter/build/ios/Debug-iphoneos/Runner.app/Frameworks/App.framework/App 不是 arm64。 运行 lipo -info:
非胖文件:/Users/martinlundberg/AndroidStudioProjects/tlycs_flutter/build/ios/Debug-iphoneos/Runner.app/Frameworks/App.framework/App 是架构:x86_64
命令 /bin/sh 失败,退出代码为 1

无法为设备构建预编译的应用程序。

在 Iphone 7s iPhone 上启动应用程序时出错。

@molundb写道

基本上,如果您可以清理构建文件夹,flutter run -v 应用程序,进行更改,进行热重载,确认未显示任何更改,那么日志将非常有帮助。
https://gist.github.com/molundb/cda4caa4e90288568db16ba9a0e962d6

谢谢! 所以热重载/重启按预期工作,但是当您停止应用程序并再次运行它时,您会看到旧应用程序吗? 你能不能发布一个flutter run -v的要点(第二个flutter run -v显示过时的应用程序)?

我有同样的问题,因此我的生产力基本上是正常的 30%。 我看到至少 3 到 4 周没有任何变化的迹象更好。 我只能希望有人将其作为真正的高度优先事项。 - 它现在正在杀死我!!!

现在看起来像正常的周转。

  1. 删除所有断点
  2. 调用flutter clean
  3. 冷重启
  4. 再次启用断点
  5. 工作一点

我还看到了大量这些控制台消息:
'''16:07:17.994 289 info flutter.tools [] -> org-dartlang-debug:synthetic_debug_expression:1:1: 错误:方法未找到:'toStringDeep'。
16:07:17.994 290 info flutter.tools [] -> toStringDeep()
'''
我的控制台中的数据输出。

这是我在 master 上的最新版本:

C:\Projects\obdchk>flutter doctor -v
[√] Flutter (Channel master, v1.5.9-pre.62, on Microsoft Windows [Version 10.0.17763.437], locale en-US)
• Flutter 版本 1.5.9-pre.62,位于 c:\sdks\flutter
• 框架修订版 8fd7fa492a(3 小时前),2019-04-29 12:59:30 -0700
• 引擎修订版 1ecf924ff8
• Dart 版本 2.3.0(构建 2.3.0-dev.0.3 c46deebfb6)

16:07:17.942 252 info flutter.tools [+965 ms] -> 结果 16e00721-c286-43e9-9460-70182643e449
16:07:17.944 253 info flutter.tools [] -> org-dartlang-debug:synthetic_debug_expression:1:1: 错误:找不到 Getter:“快照”。
16:07:17.944 254 info flutter.tools [] -> snapshot.data
16:07:17.944 255 info flutter.tools [] -> ^^^^^^^^
16:07:17.944 256 info flutter.tools [] -> org-dartlang-debug:synthetic_debug_expression:1:1: 错误:getter 'snapshot' 没有为类'_HomeScreenState' 定义。
16:07:17.944 257 info flutter.tools [] -> - '_HomeScreenState' 来自'package:obdchk/screens/home_screen.dart'('lib/screens/home_screen.dart')。
16:07:17.944 258 info flutter.tools [] -> 尝试将名称更正为现有 getter 的名称,或定义名为“快照”的 getter 或字段。
16:07:17.944 259 info flutter.tools [] -> snapshot.data
16:07:17.944 260 info flutter.tools [] -> ^^^^^^^^
16:07:17.952 261 info flutter.tools [+3 ms] -> 16e00721-c286-43e9-9460-70182643e449 build\app.dill.track.dill.incremental.dill 16
16:07:17.952 262 info flutter.tools [+2 ms] -> 结果 1bae7b85-0d7d-48c6-a4c2-e199a261f77e
16:07:17.954 263 info flutter.tools [+3 ms] -> 1bae7b85-0d7d-48c6-a4c2-e199a261f77e build\app.dill.track.dill.incremental.dill 16
16:07:17.955 264 info flutter.tools [+2 ms] -> 结果 853ea583-b3e8-47a7-ae8f-6921d5f98593
16:07:17.963 265 info flutter.tools [+2 ms] -> 853ea583-b3e8-47a7-ae8f-6921d5f98593 build\app.dill.track.dill.incremental.dill 16
16:07:17.963 266 info flutter.tools [+1 ms] -> 结果 d79513ca-38d5-4354-a47f-88ddd91741fb
16:07:17.963 267 info flutter.tools [+3 ms] -> d79513ca-38d5-4354-a47f-88ddd91741fb build\app.dill.track.dill.incremental.dill 16
16:07:17.971 268 info flutter.tools [+4 ms] -> 结果 2adf58bf-63cc-4eb8-b6c4-4952c2262bc3
16:07:17.971 269 info flutter.tools [+2 ms] -> org-dartlang-debug:synthetic_debug_expression:1:1: 错误:找不到 Getter:'_value'。
16:07:17.971 270 信息 flutter.tools [] -> _value
16:07:17.971 271 info flutter.tools [] -> ^^^^^^
16:07:17.971 272 info flutter.tools [] -> org-dartlang-debug:synthetic_debug_expression:1:1: 错误:getter '_value' 没有为类 '_HomeScreenState' 定义。
16:07:17.971 273 info flutter.tools [] -> - '_HomeScreenState' 来自'package:obdchk/screens/home_screen.dart'('lib/screens/home_screen.dart')。
16:07:17.971 274 info flutter.tools [] -> 尝试将名称更正为现有 getter 的名称,或定义名为“_value”的 getter 或字段。
16:07:17.971 275 信息 flutter.tools [] -> _value
16:07:17.971 276 info flutter.tools [] -> ^^^^^^
16:07:17.985 277 info flutter.tools [+8 ms] -> 2adf58bf-63cc-4eb8-b6c4-4952c2262bc3 build\app.dill.track.dill.incremental.dill 18
16:07:17.985 278 info flutter.tools [+4 ms] -> 结果 4379cbc9-98a6-4540-865a-c6c0a09aba5e
16:07:17.987 279 info flutter.tools [+2 ms] -> org-dartlang-debug:synthetic_debug_expression:1:1: 错误:找不到 Getter:'newValue'。
16:07:17.987 280 info flutter.tools [] -> newValue
16:07:17.987 281 info flutter.tools [] -> ^^^^^^^^
16:07:17.987 282 info flutter.tools [] -> org-dartlang-debug:synthetic_debug_expression:1:1: 错误:getter 'newValue' 没有为类 '_HomeScreenState' 定义。
16:07:17.987 283 info flutter.tools [] -> - '_HomeScreenState' 来自'package:obdchk/screens/home_screen.dart'('lib/screens/home_screen.dart')。
16:07:17.987 284 info flutter.tools [] -> 尝试将名称更正为现有 getter 的名称,或定义名为“newValue”的 getter 或字段。
16:07:17.987 285 info flutter.tools [] -> newValue
16:07:17.987 286 info flutter.tools [] -> ^^^^^^^^
16:07:17.994 287 info flutter.tools [+3 ms] -> 4379cbc9-98a6-4540-865a-c6c0a09aba5e build\app.dill.track.dill.incremental.dill 20
16:07:17.994 288 info flutter.tools [+1 ms] -> 结果 16915064-96cf-4c0c-9277-a36139fb4487
16:07:17.994 289 info flutter.tools [] -> org-dartlang-debug:synthetic_debug_expression:1:1: 错误:方法未找到:'toStringDeep'。
16:07:17.994 290 info flutter.tools [] -> toStringDeep()
16:07:17.994 291 info flutter.tools [] -> ^^^^^^^^^^^^
16:07:17.994 292 info flutter.tools [] -> org-dartlang- debug:synthetic_debug_expression :1:1: 错误:方法“toStringDeep”没有为“StreamValue”类定义'。
16:07:17.995 293 info flutter.tools [] -> - 'StreamValue' 来自'package:utilities/stream/stream_value.dart'('utilities/lib/stream/stream_value.dart')。
16:07:17.995 294 info flutter.tools [] -> 尝试将名称更正为现有方法的名称,或定义名为“toStringDeep”的方法。
16:07:17.995 295 info flutter.tools [] -> toStringDeep()
16:07:17.995 296 info flutter.tools [] -> ^^^^^^^^^^^^
16:07:18.003 297 info flutter.tools [+4 ms] -> 16915064-96cf-4c0c-9277-a36139fb4487 build\app.dill.track.dill.incremental.dill 22
16:07:18.017 298 info flutter.tools [+15 ms] -> 结果 098efd6c-f435-42a8-8ed5-cc3e79a5562f
16:07:18.017 299 info flutter.tools [] -> org-dartlang-debug:synthetic_debug_expression:1:1:错误:找不到方法:'toStringDeep'。
16:07:18.017 300 info flutter.tools [] -> toStringDeep()
16:07:18.017 301 info flutter.tools [] -> ^^^^^^^^^^^^
16:07:18.017 302 info flutter.tools [] -> org-dartlang-debug:synthetic_debug_expression:1:1: 错误:未为类“_HomeScreenState”定义方法“toStringDeep”。
16:07:18.017 303 info flutter.tools [] -> - '_HomeScreenState' 来自'package:obdchk/screens/home_screen.dart'('lib/screens/home_screen.dart')。
16:07:18.017 304 info flutter.tools [] -> 尝试将名称更正为现有方法的名称,或定义名为“toStringDeep”的方法。
16:07:18.017 305 info flutter.tools [] -> toStringDeep()
16:07:18.017 306 info flutter.tools [] -> ^^^^^^^^^^^^
16:07:18.025 307 info flutter.tools [+3 ms] -> 098efd6c-f435-42a8-8ed5-cc3e79a5562f build\app.dill.track.dill.incremental.dill 24
16:07:18.032 308 info flutter.tools [+11 ms] -> 结果 da8399f4-db8d-4390-956d-107016a6ea59
16:07:18.040 309 info flutter.tools [+6 ms] -> da8399f4-db8d-4390-956d-107016a6ea59 build\app.dill.track.dill.incremental.dill 24
16:07:18.040 310 info flutter.tools [+1 ms] -> 结果 542a3647-5840-4c9b-9588-d9f441879e12
16:07:18.040 311 info flutter.tools [] -> org-dartlang-debug:synthetic_debug_expression:1:1:错误:找不到方法:'toStringDeep'。
16:07:18.040 312 info flutter.tools [] -> toStringDeep()
16:07:18.040 313 info flutter.tools [] -> ^^^^^^^^^^^^
16:07:18.040 314 info flutter.tools [] -> org-dartlang-debug:synthetic_debug_expression:1:1: 错误:没有为类“_StateLifecycle”定义方法“toStringDeep”。
16:07:18.040 315 info flutter.tools [] -> - '_StateLifecycle' 来自 'package:flutter/src/widgets/framework.dart' ('file:///c:/sdks/flutter/packages/flutter /lib/src/widgets/framework.dart')。
16:07:18.040 316 info flutter.tools [] -> 尝试将名称更正为现有方法的名称,或定义名为“toStringDeep”的方法。
16:07:18.040 317 info flutter.tools [] -> toStringDeep()
16:07:18.040 318 info flutter.tools [] -> ^^^^^^^^^^^^
16:07:18.047 319 info flutter.tools [+3 ms] -> 542a3647-5840-4c9b-9588-d9f441879e12 build\app.dill.track.dill.incremental.dill 26
16:07:18.048 320 info flutter.tools [+1 ms] -> 结果 62d95968-c129-4d39-a840-8bdeabef1218
16:07:18.056 321 info flutter.tools [+6 ms] -> 62d95968-c129-4d39-a840-8bdeabef1218 build\app.dill.track.dill.incremental.dill 26
16:07:18.066 322 info flutter.tools [+2 ms] -> 结果 b5818d24-c116-4f43-a769-59904f0120de
16:07:18.066 323 info flutter.tools [] -> org-dartlang-debug:synthetic_debug_expression:1:1: 错误:找不到方法:'toStringDeep'。
16:07:18.066 324 info flutter.tools [] -> toStringDeep()
16:07:18.066 325 info flutter.tools [] -> ^^^^^^^^^^^^
16:07:18.066 326 info flutter.tools [] -> org-dartlang-debug:synthetic_debug_expression:1:1: 错误:未为类“AppBloc”定义方法“toStringDeep”。
16:07:18.067 327 info flutter.tools [] -> - “AppBloc”来自“package:elm_bluetooth_bloc/bloc/app_bloc.dart”(“elm_bluetooth_bloc/lib/bloc/app_bloc.dart”)。
16:07:18.067 328 info flutter.tools [] -> 尝试将名称更正为现有方法的名称,或定义名为“toStringDeep”的方法。
16:07:18.067 329 info flutter.tools [] -> toStringDeep()
16:07:18.067 330 info flutter.tools [] -> ^^^^^^^^^^^^
16:07:18.067 331 info flutter.tools [+2 ms] -> b5818d24-c116-4f43-a769-59904f0120de build\app.dill.track.dill.incremental.dill 28
16:07:18.179 332 info runtime.gc 收集时间 229ms • 46.5MB 使用 54.7MB • 隔离/867114562
16:07:18.250 333 info runtime.gc 收集时间 235ms • 51.5MB 使用 54.7MB • 隔离/867114562
16:07:31.262 334 info flutter.tools [+13198 ms] -> 结果 00e09141-41b9-43e3-806d-d4725fedf81e
16:07:31.262 335 info flutter.tools [+2 ms] -> org-dartlang-debug:synthetic_debug_expression:1:18: 错误:需要一个标识符,但得到了“”。
16:07:31.262 336 info flutter.tools [] -> onData != null &&
16:07:31.262 337 info flutter.tools [] -> ^...
16:07:31.270 338 info flutter.tools [+6 ms] -> 00e09141-41b9-43e3-806d-d4725fedf81e build\app.dill.track.dill.incremental.dill 29
16:07:33.060 339 info flutter.tools [+1792 ms] -> 结果 a180ce8f-8940-46e2-b814-0e24d138f935
16:07:33.067 340 info flutter.tools [+2 ms] -> a180ce8f-8940-46e2-b814-0e24d138f935 build\app.dill.track.dill.incremental.dill 29
16:07:38.919 341 info flutter.tools [+5854 ms] -> 结果 95d4434d-929d-4504-8653-b98921661dd8
16:07:38.926 342 info flutter.tools [+5 ms] -> 95d4434d-929d-4504-8653-b98921661dd8 build\app.dill.track.dill.incremental.dill 29
16:07:38.938 343 info flutter.tools [+14 ms] -> 结果 b183ab8e-99a6-4db0-be44-310e20c62eac
16:07:38.938 344 info flutter.tools [+1 ms] -> org-dartlang-debug:synthetic_debug_expression:1:1: 错误:方法未找到:'toStringDeep'。
16:07:38.938 345 info flutter.tools [] -> toStringDeep()
16:07:38.938 346 info flutter.tools [] -> ^^^^^^^^^^^^
16:07:38.938 347 info flutter.tools [] -> org-dartlang-debug:synthetic_debug_expression:1:1: 错误:没有为类“_Closure”定义方法“toStringDeep”。
16:07:38.938 348 info flutter.tools [] -> - “_Closure”来自“dart:core”。
16:07:38.938 349 info flutter.tools [] -> 尝试将名称更正为现有方法的名称,或定义名为“toStringDeep”的方法。
16:07:38.938 350 info flutter.tools [] -> toStringDeep()
16:07:38.938 351 info flutter.tools [] -> ^^^^^^^^^^^^
16:07:38.946 352 info flutter.tools [+3 ms] -> b183ab8e-99a6-4db0-be44-310e20c62eac build\app.dill.track.dill.incremental.dill 31
16:07:42.213 353 info flutter.tools [+3268 ms] I/flutter (16546): 26 2019-04-29 16:06:34.931965 FINE ui.main.dart: 初始路由 = null
16:07:42.232 354 info runtime.gc 收集时间 250ms • 53.1MB 使用 60.0MB • 隔离/867114562
16:07:42.239 355 info flutter.tools [ +25 ms] I/flutter (16546): 27 2019-04-29 16:06:34.957641 FINE home_screen.dart:构建主屏幕
16:07:42.355 356 info flutter.tools [+114 ms] I/flutter (16546): 28 2019-04-29 16:06:35.071358 FINE ui.main.dart: 初始路由 = null
16:07:42.421 357 info flutter.tools [ +65 ms] I/flutter (16546): 29 2019-04-29 16:06:35.136896 FINE home_screen.dart:构建主屏幕
16:07:42.496 358 info runtime.gc 收集时间 256ms • 54.5MB 使用 62.7MB •isolates/867114562
16:07:42.787 359 info runtime.gc 收集时间 323ms • 41.6MB 使用 52.5MB • 隔离/867114562
16:08:17.778 360 info flutter.tools [+35360 ms] DevFS:删除设备上的文件系统(file:///data/user/0/com.cobd.obdchk/code_cache/obdchkUCQMHL/obdchk/)
16:08:17.778 361 info flutter.tools [] 发送到 VM 服务:_deleteDevFS({fsName: obdchk})
16:08:17.827 362 info flutter.tools [+46 ms] 结果:{类型:成功}
16:08:17.827 363 info flutter.tools [] DevFS:已删除设备上的文件系统 (file:///data/user/0/com.cobd.obdchk/code_cache/obdchkUCQMHL/obdchk/)
16:08:17.827 364 info flutter.tools [+1 ms] 发送到 VM 服务:ext.flutter.exit({isolateId:isolates/867114562})
16:08:18.194 365 info flutter.tools [+363 ms] 服务协议连接关闭。
16:08:19.832 366 info flutter.tools [+1639 ms] 应用程序完成。
16:08:19.841 367 info flutter.tools [ +7 ms] “flutter run”耗时 4,203,976 毫秒。
16:08:19.841 368 info flutter.tools [] “flutter run”耗时 4,203,976 毫秒。

@ride4sun写道

我也有同样的问题

只是为了确认 - 您可以热重新加载/热重启应用程序并查看更改,但是一旦您停止应用程序并重新启动它,您就看不到更改? 如果您可以在应用程序进入此状态后从命令行窗口发布flutter run -v日志(要点),那应该会有所帮助。

我还看到了大量这些控制台消息:
'''16:07:17.994 289 info flutter.tools [] -> org-dartlang-debug:synthetic_debug_expression:1:1: 错误:方法未找到:'toStringDeep'。
16:07:17.994 290 info flutter.tools [] -> toStringDeep()
'''

你用什么IDE? 您似乎正在以详细模式运行 flutter/ide,该模式会转储 IDE 发出的所有按需编译表达式请求,以便在您浏览源代码时评估各种表达式。 如此详细的详细模式正如预期的那样,但不确定为什么在您的配置中打开它。

只是为了确认 - 您可以热重载/热重启应用程序并查看更改,但一旦停止
应用程序并重新启动它,你没有看到变化?

我认为这是正确的 - 我必须更加注意这一点

如果您可以在应用程序进入后从命令行窗口发布 flutter run -v 的日志(要点)> 此状态应该会有所帮助。

好的

你用什么IDE?

安卓工作室

您似乎正在以详细模式运行 flutter/ide,该模式会按需转储所有内容
编译表达式请求 IDE 发出以在您浏览 > 源代码时计算各种表达式。 如此详细的详细模式正如预期的那样,但不确定为什么在您的 >configuration 中打开它。

看到所有这些问题后,我打开了详细信息。 我认为这些“toStringDeep”消息出现的时间之间存在相关性。

                                                             toStringDeep()

16:07:38.938 346 info flutter.tools [] -> ^^^^^^^^^^^^

@aam

谢谢! 所以热重载/重启按预期工作,但是当您停止应用程序并再次运行它时,您会看到旧应用程序吗? 你能不能发布一个flutter run -v的要点(第二个flutter run -v显示过时的应用程序)?

每当我启动应用程序时,旧代码就会运行。 热重载没有任何改变。 我发现让当前代码运行的唯一方法是热重启。 之后,热重载照常工作。 如果我停止并再次启动应用程序,旧代码将再次运行。

https://gist.github.com/molundb/7020ff1e43e28fd3e2d0326cd0b957ae

@molundb写道

每当我启动应用程序时,旧代码就会运行

如果在启动应用程序之前编辑某个文件会发生什么? 如果在再次启动之前从模拟器中删除应用程序会怎样?

我认为如果您还升级到最新的测试版或开发版,则更容易解决问题。

此外,如果您可以看到 sample (flutter gallery) 在编辑和重新加载时是否出现相同的问题,请停止并启动它,最好从可以捕获日志的命令行中进行。

@aam写道

如果在启动应用程序之前编辑某个文件会发生什么?

试过了,没区别。 相同的旧代码仍在运行。

如果在再次启动之前从模拟器中删除应用程序会怎样?

试过了,没区别。 相同的旧代码仍在运行。

我认为如果您还升级到最新的测试版或开发版,则更容易解决问题。

好的,我改成测试版了。

此外,如果您可以看到 sample (flutter gallery) 在编辑和重新加载时是否出现相同的问题,请停止并启动它,最好从可以捕获日志的命令行中进行。

运行 flutter gallery 应用程序可以正常工作; 没有运行旧代码。
https://gist.github.com/molundb/075ba9d05e0516b7787a0570a97d05ef

@molundb写道

如果在启动应用程序之前编辑某个文件会发生什么?

试过了,没区别。 相同的旧代码仍在运行。

您可以在某些源代码更改后发布运行日志吗? 如果在初始应用程序启动时的日志中有Skipping kernel compilation. Fingerprint match. ,即使您编辑源代码,文件系统也不会报告文件系统更改或抖动,并且您正在查看不同的来源。 您能否确认您编辑的文件已更新时间戳? beta / dev版本应该报告它用于编译的源列表 - 你能确认你编辑的文件列在那里吗?
如果您执行flutter clean (或删除build/文件夹)怎么办 - 下次运行该应用程序时,它是否有更改? 如果是这样,你如何进入破碎状态? 您停止应用程序,更改源,启动应用程序,然后看不到更改?

运行 flutter gallery 应用程序可以正常工作; 没有运行旧代码。

好的,这至少建立了一些合理的基础。 也许将您机器上的应用程序设置与 flutter gallery 示例进行比较可以提供一些关于为什么它不适用于您的应用程序的见解? 两者都托管在同一个磁盘/文件系统上吗?

跳过内核编译。 指纹匹配

如果你通过了这个修复,那应该永远不会出现,因为我已经禁用了所有的指纹识别器

@aam

您可以在某些源代码更改后发布运行日志吗? 如果有跳过内核编译。 指纹匹配。 在登录初始应用程序启动时,即使您编辑源代码,文件系统也不会报告文件系统更改或抖动,并且您正在查看不同的源。

我找不到跳过内核编译。 指纹匹配。

您能否确认您编辑的文件已更新时间戳? beta/dev 版本应该报告它用于编译的源列表 - 你能确认你编辑的文件列在那里吗?

我在哪里可以看到这个时间戳? 在输出中,我可以看到我编辑的文件列出了两次,但还列出了许多其他未编辑的文件。

我编辑了这个文件:/Users/martinlundberg/AndroidStudioProjects/tlycs_flutter/lib/screens/settings_page/SettingsPage.dart

这是输出:
https://gist.github.com/molundb/146a46aa7c2e1a6fc81071b4d23561d1

如果您执行 flutter clean (或删除 build/ 文件夹)怎么办 - 下次运行应用程序时,它是否有更改? 如果是这样,你如何进入破碎状态? 您停止应用程序,更改源,启动应用程序,然后看不到更改?

不,flutter clean 没有任何改变。 旧代码仍在运行。 每当应用程序停止然后运行时,我们就会进入损坏状态。 执行热重启可修复损坏状态。

好的,这至少建立了一些合理的基础。 也许将您机器上的应用程序设置与 flutter gallery 示例进行比较可以提供一些关于为什么它不适用于您的应用程序的见解? 两者都托管在同一个磁盘/文件系统上吗?

是的,它们都托管在同一个磁盘上。 我不知道还有哪些不同之处,
你有什么想法?

我在哪里可以看到这个时间戳? 在输出中,我可以看到我编辑的文件列出了两次,但还列出了许多其他未编辑的文件。

我的意思是您在ls -al {filename}终端外壳中获得的时间戳。
文件列表有助于确认您正在编辑的文件是正在编译的文件。

不,flutter clean 没有任何改变。 旧代码仍在运行。 每当应用程序停止然后运行时,我们就会进入损坏状态。 执行热重启可修复损坏状态。

所以你在状态 A 下启动应用程序(假设背景颜色是灰色) - 你做flutter run -v 。 您编辑颤振源代码(状态 B)(例如背景颜色为红色),您热重载(颤振命令行终端会话中的'r'),您看到更改了吗? 你停止应用程序(退出flutter run )并重新启动它( flutter run -v ,你看到状态 A 还是状态 B?如果你仍然看到 A,如果你从 iPhone 模拟器中删除应用程序,怎么办? flutter clean ,再做flutter run吗?还是 A?

@aam

我的意思是你在 ls -al {filename} Terminal Shell 中得到的时间戳。
文件列表有助于确认您正在编辑的文件是正在编译的文件。

哦! 我之前不知道那个命令。 我试过了,它似乎确实注意到文件更新的时间。 然而,问题仍然是一样的; 除非我热重启,否则旧代码正在运行。 这是终端的输出:

Sebastians-MacBook-Pro-Retina-2016:tlycs_flutter martinlundberg$ ls -al lib/widgets/FeedbackButton.dart 
-rw-r--r--  1 martinlundberg  staff  1051 May  6 09:33 lib/widgets/FeedbackButton.dart
Sebastians-MacBook-Pro-Retina-2016:tlycs_flutter martinlundberg$ ls -al lib/widgets/FeedbackButton.dart 
-rw-r--r--  1 martinlundberg  staff  1053 May  7 11:00 lib/widgets/FeedbackButton.dart

因此,您在状态 A 下启动应用程序(假设背景颜色为灰色)-您执行 flutter run -v。

完毕。

您编辑颤振源代码(状态 B)(例如背景颜色为红色),您热重载(颤振命令行终端会话中的'r'),您看到更改了吗?

没变。

您停止应用程序(退出 flutter run)并重新启动它(flutter run -v,您看到状态 A 还是状态 B?

一种。

如果你仍然看到 A,如果你从 iphone 模拟器中删除应用程序,做 flutter clean ,做 flutter run 怎么办? 还是一个?

有趣的是,这一次,在运行最后一次 flutter run -v 后,应用程序崩溃并且没有构建。 然后我尝试在不更改任何内容的情况下再次运行它并再次构建状态 A。 然后我热重载,仍然是 A。然后我热重启,并获得状态 B。在这里查看所有内容的输出:

https://gist.github.com/molundb/ddfd07e7fd1691f8b3992c207b7ac80f

非常感谢您到目前为止的所有帮助,这个问题仍然是我们这里的一个主要问题。

@molundb写道

如果你仍然看到 A,如果你从 iphone 模拟器中删除应用程序,做 flutter clean ,做 flutter run 怎么办? 还是一个?

有趣的是,这一次,在运行最后一次 flutter run -v 后,应用程序崩溃并且没有构建。 然后我尝试在不更改任何内容的情况下再次运行它并再次构建状态 A。 然后我热重载,仍然是 A。然后我热重启,并获得状态 B。在这里查看所有内容的输出:

所以听起来你永远停留在 A 状态,是吗? 除非您以状态 A 启动,然后热重启应用程序,否则您无法对生效的应用程序进行任何更改,但这些更改在您停止应用程序后消失。 这听起来像 xcodeproject 设置问题。 您是否可以通过flutter create myproject创建新的 flutter 项目,然后将您的 flutter/dart 代码复制到myproject然后查看myproject中的工作是否正常?

@aam @molundb已经有一段时间没有使用了,所以它可能已经过时了,但flutter run --bug-report可能在这里有用。 你必须很快退出应用程序才能将错误报告 zip 文件保持在一个合理的大小 😄

@aam

所以听起来你永远停留在 A 状态,是吗? 除非您以状态 A 启动,然后热重启应用程序,否则您无法对生效的应用程序进行任何更改,但这些更改在您停止应用程序后消失。

确切地。

这听起来像 xcodeproject 设置问题。 您是否可以通过 flutter create myproject 创建新的 flutter 项目,然后将您的 flutter/dart 代码复制到该 myproject 中,然后查看 myproject 中的工作是否正常?

好的,首先我创建了一个新项目,然后将 lib、assets、pubspec.yaml、pubspec.lock、package-lock.json 和 GoogleService-Info.plist 复制到项目中。 然后每当我尝试运行时,我都会遇到这个我无法解决的错误:

5.20.0 - [Firebase/Core][I-COR000004] App with name __FIRAPP_DEFAULT does not exist.
Configuring the default Firebase app...
5.20.0 - [Firebase/Core][I-COR000012] Could not locate configuration file: 'GoogleService-Info.plist'.
5.20.0 - [Firebase/Core][I-COR000005] No app has been configured yet.
5.20.0 - [Firebase/Core][I-COR000005] No app has been configured yet.
*** First throw call stack:
(
    0   CoreFoundation                      0x00000001116846fb __exceptionPreprocess + 331
    1   libobjc.A.dylib                     0x0000000110c28ac5 objc_exception_throw + 48
    2   CoreFoundation                      0x0000000111684555 +[NSException raise:format:] + 197
    3   Runner                              0x000000010a44b462 +[FIRApp configure] + 562
    4   Runner                              0x000000010aa2bf16 -[FLTCloudFirestorePlugin init] + 214
    5   Runner                              0x000000010aa2bda9 +[FLTCloudFirestorePlugin registerWithRegistrar:] + 297
    6   Runner                              0x000000010a2a9123 +[GeneratedPluginRegistrant registerWithRegistry:] + 115
    7   Runner                        <…>

然后我将 ios 文件夹复制到新项目中并构建,但我再次遇到错误。 除非我热重启,否则总是状态 A。 知道如何解决上面的错误吗?

@tvolkert

我在原始项目上运行flutter run --bug-report并得到两个 zip 文件? 我不确定为什么有两个。 他们来了:
错误报告_01.zip
错误报告_02.zip

@aam

我重新进行了第一次尝试,但无法通过将 GoogleService_Info.plist 移动到 xcode 而不是我的文件夹来解决 __FIREAPP_DEFAULT 问题。 现在它建立了状态 B! 没有旧代码。 现在我只需要弄清楚如何确保将所有必要的内容复制到新项目中。

谢谢!

我遇到了同样的问题,据我说我的问题是我没有将类名设置为 MyApp
一旦我将班级名称更改为 MyApp ......它又开始工作了
由于名称不同,MyApp 测试文件夹中名为 widget_test.dart 的文件出现错误......
PS:我还处于学习 flutter 的早期阶段,这可能不是你的解决方案😅

好的

使用https://github.com/flutter/flutter/commit/df3505c1f389031895a459cb2831f38a76119ea2我相信这在 Android 上是完全固定的。

是的,我不再有这个烦人的问题,而且它已经修复了很长时间

我仍然面临这个问题。 我在运行版本 1.12.13+hotfix.3 的测试版频道。 我正在使用 Android Studio 并且我已经在我的应用程序中修复了启动错误,但是每次我冷启动我的应用程序时,我仍然收到红色的大错误消息,解决它的唯一方法是每次都热重启。

@Rerevise你能详细说明一下吗? 冷重启 = 重新运行应用程序?

是的,就像完全停止应用程序并重新启动一样。

您能否提供重新运行的详细日志(例如:flutter run -v)并在启动时分享错误消息?

@Reprevise看起来就像您在后台运行不同的 flutter 应用程序并在构建时从中获取日志(绝对令人讨厌)。 如果您重新启动手机并再次运行,您是否可以先确认错误是否仍然发生,然后如果错误消失,如果您颤动干净,错误是否仍然发生?

我已经擦除了所有模拟器中的所有数据并运行了我的 Flutter 应用程序。 它显示了错误(它不应该有,因为它已经被修复了)。 在我运行flutter clean ,错误仍然出现在启动时。

更正:flutter clean 后,它不再显示启动时的错误。 但是,它确实在日志中显示了错误。

我不认为这是相关的。 您的应用程序似乎是最新的,但自然存在此错误。 如果您可以以最少的重现提交新问题,这将有助于确定根本原因

稳定频道上的 v1.12 似乎缓存了过时的错误控制台日志。 清洁/删除并不能解决问题。 错误一直显示,直到有时无缘无故消失。 这让我很困惑。

@gloryluu与构建/清理无关,我建议填充一个新错误

我在颤振项目中遇到了一些问题,任何人都可以帮助我

C:\flutterbin\flutter.bat 医生 --verbose
[√] Flutter (Channel master, v1.13.6-pre.38, on Microsoft Windows [Version 10.0.14393], locale en-US)
• Flutter 版本 1.13.6-pre.38,位于 C:\flutter
• 框架修订 b28dd0c296(7 天前),2019-12-28 10:33:01 +0800
• 引擎修订版 5a730c60d3
• Dart 版本 2.8.0(构建 2.8.0-dev.0.0 1db1a837f8)

[!] Android 工具链 - 为 Android 设备开发(Android SDK 版本 29.0.2)
• Android SDK 位于 E:\Android Meterial\AndroidSDK
• 未配置 Android NDK 位置(可选;对于本机分析支持很有用)
• 平台 android-29,构建工具 29.0.2
• ANDROID_HOME = E:\Android 材料\AndroidSDK
• Java 二进制文件位于:C:\Program Files\Android\Android Studio\jrebin\java
• Java 版 OpenJDK 运行时环境(构建 1.8.0_202-release-1483-b03)
X And​​roid 许可证状态未知。
尝试重新安装或更新您的 Android SDK 管理器。
有关详细说明,请参阅https://developer.android.com/studio/#downloads或访问https://flutter.dev/setup/#android -setup。

[√] Android Studio(3.5版)
• Android Studio 位于 C:\Program Files\Android\Android Studio
• Flutter 插件版本 42.1.1
• Dart 插件版本 191.8593
• Java 版 OpenJDK 运行时环境(构建 1.8.0_202-release-1483-b03)

[√] 已连接设备(1 个可用)
• SM M105F • 5200ebb94a0346f7 • android-arm • Android 9 (API 28)

! 医生在 1 个类别中发现了问题。
进程完成,退出代码 0

如何在 Windows 10 64 位中解决这些问题

“[!] Android 工具链 - 为 Android 设备开发(Android SDK 版本 29.0.2)
• Android SDK 位于 E:\Android Meterial\AndroidSDK
• 未配置 Android NDK 位置(可选;对于本机分析支持很有用)
• 平台 android-29,构建工具 29.0.2
• ANDROID_HOME = E:\Android 材料\AndroidSDK
• Java 二进制文件位于:C:\Program Files\Android\Android Studio\jrebin\java
• Java 版 OpenJDK 运行时环境(构建 1.8.0_202-release-1483-b03)
X And​​roid 许可证状态未知。
尝试重新安装或更新您的 Android SDK 管理器。
有关详细说明,请参阅https://developer.android.com/studio/#downloads或访问https://flutter.dev/setup/#android -setup。”

我有同样的问题。

[颤振]颤振医生-v
[√] Flutter (Channel stable, v1.12.13+hotfix.5, on Microsoft Windows [Version 10.0.18363.535], locale en-US)
• Flutter 版本 1.12.13+hotfix.5 位于 D:\flutter
• 框架修订 27321ebbad(5 周前),2019-12-10 18:15:01 -0800
• 引擎修订版 2994f7e1e6
• Dart 版本 2.7.0

[√] Android 工具链 - 为 Android 设备开发(Android SDK 版本 28.0.3)
• Android SDK 位于 D:\android-sdk
• 未配置 Android NDK 位置(可选;对于本机分析支持很有用)
• 平台 android-28,构建工具 28.0.3
• ANDROID_HOME = D:\android-sdk
• Java 二进制文件位于:C:\Program Files\Android\Android Studio\jrebin\java
• Java 版 OpenJDK 运行时环境(构建 1.8.0_152-release-1343-b01)
• 接受所有Android 许可证。

[!] Android Studio(3.4 版)
• Android Studio 位于 C:\Program Files\Android\Android Studio
X Flutter 插件未安装; 这增加了 Flutter 特定的功能。
未安装 X Dart 插件; 这增加了 Dart 特定的功能。
• Java 版 OpenJDK 运行时环境(构建 1.8.0_152-release-1343-b01)

[√] VS Code(1.41.1 版本)
• VS Code 位于 C:\Users\Armin\AppData\Local\Programs\Microsoft VS Code
• Flutter 扩展版本 3.7.1

[√] 已连接设备(1 个可用)
• 为 x86 构建的 Android SDK • emulator-5554 • android-x86 • Android 9 (API 28)(模拟器)

! 医生在 1 个类别中发现了问题。

@jonahwilliams我们可能应该清点工具的哪些部分仍需要转换以使用新的构建系统,为这些部分单独提交问题,然后关闭此问题。

可重现的步骤:

  1. 创建新的 Flutter 项目
  2. 要获得导致臭名昭著的错误屏幕的错误,请在MyAppbuild方法中调用MediaQuery.of(context)
  3. 你得到错误屏幕。
  4. 停止调试(在 VSCode & Android Studio 中,点击红色方块)
  5. 修复错误(在这种情况下,删除调用MediaQuery.of(context)
  6. 重启调试
  7. 即使错误已修复,您也会看到错误屏幕。
  8. 重新启动应用程序(在 VSCode 中,按绿色刷新图标,在 Android Studio 中,按带有小绿色圆圈的“播放”按钮)并注意错误屏幕消失了。

我使用的是 Flutter 1.13.6(最新的 Beta 频道版本)。

更新:仍然适用于最新的测试版 (1.14.6)。

稳定频道上的 v1.12 似乎缓存了过时的错误控制台日志。 清洁/删除并不能解决问题。 错误一直显示,直到有时无缘无故消失。 这让我很困惑。

也遇到同样的问题。
Flutter(通道稳定,v1.12.13+hotfix.7,在 Mac OS X 10.15.2 19C57,语言环境 en-AU)

@shinta5150控制台日志问题是一个单独的回归。

@Reprevise这听起来像是不可热重载的更改,而不是构建错误

@jonahwilliams我从来没有说过我热加载。 我停止调试并重新启动它,但在修复错误后仍然出现屏幕。

@Reprevise在你的项目目录中会有一个生成的文件,它应该包含你项目的所有依赖项,比如build/app/intermediates/flutter/debug/flutter_build.d 。 您能否验证它是否包含您要更改的文件的名称?

@Reprevise在你的项目目录中会有一个生成的文件,它应该包含你项目的所有依赖项,比如build/app/intermediates/flutter/debug/flutter_build.d 。 您能否验证它是否包含您要更改的文件的名称?

它确实包含我正在编辑的文件的名称。

太好了,接下来要检查的是文件校验和。 在flutter clean之后开始下一部分很有帮助。 首先 - 在错误完好无损的情况下运行您的构建两次

然后打开.dart_tool/flutter_build/<some-hash-value>/.filecache并为您正在编辑的文件拉取 sha。 它会是这样的:

{
  "version": 2,
  "files": [
    {"path": "path/you/care/about.dart", "hash": "somevalue"},
    ...
  ],
}

接下来,进行更改以修复错误并再次重建应用程序。 检查哈希并验证它是否已更新或未更新

实际上,更简单的方法可能是在更改文件后以详细方式运行。 你会寻找这样的一行:

skipping kernel_snapshot或现在

因此,要验证:

我运行了两次构建,错误屏幕按预期出现了两次。
我抓住了 sha 值。
我修复了错误。
重建后,我发现sha没有改变。

@乔纳威廉姆斯

注意:我无法在 Linux 上重现该问题。

@Reprevise当您详细地执行这些步骤时,您是否看到 gradle 正在跳过颤振任务本身? 喜欢:

[        ] > Task :app:transformClassesAndDexWithShrinkResForRelease UP-TO-DATE
[        ] > Task :app:packageRelease UP-TO-DATE
[        ] > Task :app:assembleRelease
[        ] BUILD SUCCESSFUL in 994ms
[        ] 30 actionable tasks: 4 executed, 26 up-to-date

这将帮助我缩小是 flutter tool bug 还是 flutter gradle bug

如果这是 Windows,我的猜测是 depfile 中存在格式错误,这导致 Gradle 错误地跳过 flutter 任务。 这将与 sha 不更新一致。

这是我来自flutter run --verbose日志:

https://pastebin.com/V5U7G3tj

请注意,如错误日志所示,我的文件在我的构建方法中包含MediaQuery.of(context) 。 是的,我正在运行 Windows。

好的,我们正在逐步缩小问题的范围。 在FLUTTER_ROOT/packages/flutter_tools/gradle/flutter.gradle您可以添加一个打印语句来验证 depfile 是否被正确解析:

    <strong i="7">@InputFiles</strong>
    FileCollection getSourceFiles() {
        FileCollection sources = project.files()
        for (File depfile in getDependenciesFiles()) {
          sources += readDependencies(depfile)
        }
        sources.collect {
            println it
        }
        return sources + project.files('pubspec.yaml')
    }

FlutterTask 。 然后,重新运行并抓取解析后的 depfile 的内容

使用打印语句,这是我的新flutter run --verbose日志:

https://pastebin.com/dVXCUueS

谢谢! 看起来正确的文件在那里 - 以下文件是您的应用程序代码:

C:\Users\Owner\Documents\Flutter Apps\error_test\android\app\Apps\error_test\pubspec.yaml
[        ] C:\Users\Owner\Documents\Flutter
[        ] C:\Users\Owner\Documents\Flutter Apps\error_test\android\app\Apps\error_test\.packages
[        ] C:\Users\Owner\Documents\Flutter Apps\error_test\android\app\Apps\error_test\lib\main.dart

我要去🤦‍♂,但我想知道这是否是另一个“文件路径中的空间抛出 Windows 上的工具”问题。 该问题是否在没有空格的目录中为您重现? (并不是说我建议将其作为长期解决方案......)

android\app\Apps部分不存在:

以下是上述文件的实际路径:

C:\Users\Owner\Documents\Flutter Apps\error_test\pubspec.yaml
C:\Users\Owner\Documents\Flutter Apps\error_test\.packages
C:\Users\Owner\Documents\Flutter Apps\error_test\lib\main.dart

也不确定为什么C:\Users\Owner\Documents\Flutter在那里?
但我真的不认为路径是一个问题,只是指出它。

此外,“文件路径中的空间”实际上可能导致了这个问题。
我已经非常努力地在没有空格的路径中重现该问题,但我做不到。

感谢所有调试@Reprevise的帮助。 有了这些信息,我应该能够很快地组装一个补丁。

也不确定为什么 C:\Users\Owner\Documents\Flutter 在那里?

看起来也很奇怪,也不确定,但我会看看

老实说,可能与目录名称中的空格有关。

@Reprevise所以我在我的 Windows 机器上重新发布了这个,并有一个待解决的问题。 如果您愿意,可以将其修补到您自己的 flutter checkout 中进行验证。 注意:您需要先清理干净以清除坏的 depfile。

https://github.com/flutter/flutter/pull/50538

转义问题现在已在 master 上修复

回家后我会测试大师并报告是否解决了问题

似乎它有效,到目前为止每次都使用正确的代码重建🤞。

自过去几天以来面临同样的问题。 Hot Reload 已停止工作,每次都必须重新启动。

@gegobyte这与热重载无关

就我而言,这种情况发生在更新 flutter 和编辑外部库之后。 我通过做解决了这个问题

flutter clean

然后通过运行

flutter pub cache repair

然后重新构建您的应用程序。

我们应该关闭这个吗? 对于它的价值,我不再看到这个问题。 我看到最近至少修复了一个潜在的错误。

我们也有可能希望将其拆分为多个问题,并将其用作跟踪元问题。

我已经有一段时间没有遇到这个问题了,我使用的是最新的 beta 1.15.17。

我怀疑我们会发现更集中的问题更有用/可操作。 @jonahwilliams wdyt?

我看不到这个问题了。 我在频道测试版。

该问题似乎在稳定频道中消失了(1.12.13 修补程序 8)

我有 1.12.13 版修补程序 8,但我似乎仍然遇到此问题。 我跑了

扑干净

它似乎至少暂时解决了这个问题

就我而言,这种情况发生在更新 flutter 和编辑外部库之后。 我通过做解决了这个问题

flutter clean

然后通过运行

flutter pub cache repair

然后重新构建您的应用程序。

这为我解决了问题!! (也更新 Dart 和 Flutter)。

我已经遵循了“flutter pub cache repair”解决方案,但现在我的热重载不再起作用,我需要为每个构建进行flutter clean。 还有其他建议吗?

@AntheusS听起来可能是一个单独的问题,我很想了解它。 您是否愿意针对您的具体问题提出新问题,以便我们帮助您解决问题? 谢谢!

以下注释由@tvolkert于 2018 年 10 月 16 日添加

如果您受到此错误的影响,

请填写以下表格!

https://goo.gl/forms/eFPT6A3jAD8clU4o2 (调查收集有关此错误的信息)

重现步骤

当我(或我的一个队友)在 AVD 或真实设备上运行 flutter flutter run (或使用 IntelliJ 和 VSCode 上的运行/调试按钮)时,安装的版本总是落后于最新版本,我总是需要重新启动应用程序,有时甚至flutter clean
这是一个问题,尤其是当 AVD/真实设备上的构建崩溃时,这里唯一的解决方案是flutter clean ,即使我停止运行应用程序并再次执行flutter run也是如此。

构建和安装生产 APK 时也会发生同样的情况:
当我运行flutter buildflutter install ,安装的 APK 没有更新。
如果我运行 flutter clean,然后再次运行flutter buildflutter install ,则安装的 APK 是最新的。

颤振医生:

[√] Flutter (Channel beta, v0.2.8, on Microsoft Windows [Versione 10.0.17133.73], locale it-IT)
    • Flutter version 0.2.8 at C:\Users\Edoardo Debenedetti\flutter
    • Framework revision b397406561 (13 days ago), 2018-04-02 13:53:20 -0700
    • Engine revision c903c217a1
    • Dart version 2.0.0-dev.43.0.flutter-52afcba357

[√] Android toolchain - develop for Android devices (Android SDK 27.0.3)
    • Android SDK at C:\Users\Edoardo Debenedetti\AppData\Local\Android\sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-27, build-tools 27.0.3
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b02)
    • All Android licenses accepted.

[√] Android Studio (version 3.1)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b02)

[√] IntelliJ IDEA Ultimate Edition (version 2018.1)
    • IntelliJ at C:\Users\Edoardo Debenedetti\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\181.4203.550
    • Flutter plugin version 23.1.3
    • Dart plugin version 181.4203.498

[√] VS Code, 64-bit edition (version 1.22.2)
    • VS Code at C:\Program Files\Microsoft VS Code
    • Dart Code extension version 2.11.2

[√] Connected devices (2 available)
    • PRA LX1                   • 57UDU17111026756 • android-arm64 • Android 7.0 (API 24)
    • Android SDK built for x86 • emulator-5554    • android-x86   • Android 8.1.0 (API 27) (emulator)

• No issues found!

以下注释由@tvolkert于 2018 年 10 月 16 日添加

如果您受到此错误的影响,

请填写下面的表格!

https://goo.gl/forms/eFPT6A3jAD8clU4o2 (调查收集有关此错误的信息)

繁殖步骤

当我(或我的一个队友)在 AVD 或真实设备上运行 flutter flutter run (或通过 IntelliJ 和 VSCode 上的运行/调试按钮)时,安装的版本总是在一边。在最新的之后版本,我总是需要重新启动应用程序,甚至有时需要重新启动flutter clean
这是一个问题,尤其是当 AVD/真实设备上的构建崩溃并且这里唯一的解决方案是flutter clean ,即使我停止应用程序运行并再次执行flutter run也是如此。

在构建和安装生产 APK 时会发生同样的事情:
当我运行flutter buildflutter install ,安装的 APK 没有更新。
如果我运行 flutter clean,接下来,安装的 APK flutter buildflutter install将被更新。

医生瑟瑟发抖:

[√] Flutter (Channel beta, v0.2.8, on Microsoft Windows [Versione 10.0.17133.73], locale it-IT)
    • Flutter version 0.2.8 at C:\Users\Edoardo Debenedetti\flutter
    • Framework revision b397406561 (13 days ago), 2018-04-02 13:53:20 -0700
    • Engine revision c903c217a1
    • Dart version 2.0.0-dev.43.0.flutter-52afcba357

[√] Android toolchain - develop for Android devices (Android SDK 27.0.3)
    • Android SDK at C:\Users\Edoardo Debenedetti\AppData\Local\Android\sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-27, build-tools 27.0.3
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b02)
    • All Android licenses accepted.

[√] Android Studio (version 3.1)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b02)

[√] IntelliJ IDEA Ultimate Edition (version 2018.1)
    • IntelliJ at C:\Users\Edoardo Debenedetti\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\181.4203.550
    • Flutter plugin version 23.1.3
    • Dart plugin version 181.4203.498

[√] VS Code, 64-bit edition (version 1.22.2)
    • VS Code at C:\Program Files\Microsoft VS Code
    • Dart Code extension version 2.11.2

[√] Connected devices (2 available)
    • PRA LX1                   • 57UDU17111026756 • android-arm64 • Android 7.0 (API 24)
    • Android SDK built for x86 • emulator-5554    • android-x86   • Android 8.1.0 (API 27) (emulator)

• No issues found!

非常感谢,我修好了。

稳定频道上最后一个版本的相同问题

@AntheusS听起来可能是一个单独的问题,我很想了解它。 您是否愿意针对您的具体问题提出新问题,以便我们帮助您解决问题? 谢谢!

我实际上通过在执行前面描述的命令后重新安装我的完整开发环境来修复它。 非常感谢。 :-)

这个问题已经变得有点长而且超载了。 @jonahwilliams在这方面的工作应该已经解决了大部分问题。 如果人们仍然有由flutter clean修复的问题,请提交一个包含完整细节的新问题。 谢谢!

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

sethladd picture sethladd  ·  133评论

eseidelGoogle picture eseidelGoogle  ·  139评论

jtrunick picture jtrunick  ·  174评论

jeroen-meijer picture jeroen-meijer  ·  157评论

eseidelGoogle picture eseidelGoogle  ·  171评论