无法评估表达式“handlePrimaryPointer”:内部错误:没有索引为 45 的帧

Ali*_*jaz 22 dart flutter flutter-dependencies

我为管理员登录编写的代码:

\n
import \'package:cloud_firestore/cloud_firestore.dart\';\nimport \'package:flutter/material.dart\';\n\nclass FirebaseServices {\n  static Future<DocumentSnapshot> adminSignIn(id) async {\n    var res =\n        await FirebaseFirestore.instance.collection("admin").doc(id).get();\n    return res;\n  }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

我收到的错误如下:

\n
import \'package:cloud_firestore/cloud_firestore.dart\';\nimport \'package:flutter/material.dart\';\n\nclass FirebaseServices {\n  static Future<DocumentSnapshot> adminSignIn(id) async {\n    var res =\n        await FirebaseFirestore.instance.collection("admin").doc(id).get();\n    return res;\n  }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

您还可以访问该项目的存储库

\n

我试着跑flutter doctor -v。进而:

\n
+ ChromeProxyService: Failed to evaluate expression \n \'handlePrimaryPointer\':InternalError: No frame with index 45.\n+ ChromeProxyService: Failed to evaluate expression\n \'postAcceptSlopTolerance\': InternalError: No frame with index 45.\n+ ChromeProxyService: Failed to evaluate expression \'FirebaseFirestore\':    \n  InternalError: No frame with index 32.\n+ ChromeProxyService: Failed to evaluate expression \'DocumentSnapshot\':    \n  InternalError: No frame with index 32.\n+ ChromeProxyService: Failed to evaluate expression \'Future\': \n  InternalError: No frame with index 32.\n+ ChromeProxyService: Failed to evaluate expression \'catch\': \n  InternalError: No frame with index 32.\n
Run Code Online (Sandbox Code Playgroud)\n

Ben*_*nno 11

如果您无法添加调试断点并在调试器中查看变量的状态,这是由最近的 Flutter bug 引起的,您可以在下一段中应用修复程序。

\n

如果调试工作正常,请记住,如果异步代码当时仍在执行,则程序在断点或未处理的异常处暂停后,预计ChromeProxyService会出现错误消息。它告诉我们,在调试断点或首先发生崩溃后,异步代码尝试与暂停的主线程对话,当然失败了(异步任务成功失败)。由此产生的错误是一个红色鲱鱼。\n您的 VSCode 调试器在导致未处理异常的函数上显示红色弹出窗口,这是您的下一个线索。ChromeProxyService

\n

如果调试断点被破坏: \n升级到 Flutter v3.0.0 或使用下面的解决方法降级到 v2.10.4。

\n
\n

颤振3升级:

\n

运行flutter channel stable后接着flutter upgrade --force

\n
\n

对于旧版本的 Flutter,此处记录了解决方法https://github.com/flutter/flutter/issues/101224#issuecomment-1092324782

\n
\n

flutter downgrade v2.10.4

\n

(使用以下命令查找 Flutter 安装目录flutter doctor -v:)

\n

cd\xc2\xa0<path to flutter install dir>/flutter/packages/flutter_tools

\n

更新dwds约束\nin\xc2\xa0packages/flutter_tools/pubspec.yaml\xc2\xa0to\xc2\xa011.5.2

\n

运行\xc2\xa0 flutter pub get\xc2\xa0在\xc2\xa0packages/flutter_tools\xc2\xa0目录

\n

删除缓存:\xc2\xa0rm -rf ../../bin/cache

\n

重建 flutter:\xc2\xa0 flutter pub getin\xc2\xa0packages/flutter_tools 目录(它\nt触发 flutter 重建)

\n
\n

此问题导致 VS Code 在使用 Web-javascript 渲染器调试 Flutter 项目时不显示本地变量。在将调试选项切换为“调试我的代码+包”之前,我无法查看错误消息。

\n

将 Google Chrome 降级到版本 99.0.4844.74 也可以解决此问题。

\n

  • 这对我不起作用!还有其他解决方案吗? (2认同)

Mr.*_*Oak 2

对于搜索此问题并浏览此页面的其他人:我遇到了类似的错误,与 Firebase 无关,解决方案是上面 Benno 的答案中捕获的内容,但有点隐藏在细节中。

在我的例子中,这个错误消息是一个转移注意力的信息。实际发生的情况是我遇到了另一个错误(没有正确设置 CORS 策略),这导致主线程崩溃,然后导致异步调用无法被捕获。一旦我修复了其他错误,一切都按预期进行。

我最初在本诺的回复中错过了这个细节,希望能为其他人节省时间(谢谢本诺!)。