Flutter 什么是NoSuchMethod错误?如何修复它?

Flutter 什么是NoSuchMethod错误?如何修复它?,flutter,dart,null,nosuchmethod,Flutter,Dart,Null,Nosuchmethod,我有一些代码,当我运行它时会产生一个错误,说: NoSuchMethod:对null调用了方法“XYZ” 这意味着什么?如何修复它?为什么会出现此错误? 例子 与现实世界相比,刚才发生的是这样的对话: 嘿,汽车油箱里还剩下多少汽油 你在说什么,我们没有车 这正是您的程序中正在发生的事情。您想调用一个函数,如\u car.getGasLevel()但是没有car,变量\u car为null 显然,在你的程序中,它可能不是一辆汽车。它可以是一个列表、一个字符串或其他任何东西 技术说明 您试图使用的变

我有一些代码,当我运行它时会产生一个错误,说:

NoSuchMethod:对null调用了方法“XYZ”

这意味着什么?如何修复它?

为什么会出现此错误? 例子 与现实世界相比,刚才发生的是这样的对话:

嘿,汽车油箱里还剩下多少汽油

你在说什么,我们没有车

这正是您的程序中正在发生的事情。您想调用一个函数,如
\u car.getGasLevel()
但是没有car,变量
\u car
null

显然,在你的程序中,它可能不是一辆汽车。它可以是一个列表、一个字符串或其他任何东西

技术说明 您试图使用的变量为
null
。要么您已经显式地将其设置为
null
,要么您根本就没有设置它,默认值是
null

与任何变量一样,它可以传递到其他函数中。获取错误的位置可能不是源。您必须遵循从实际
null
值到其最初来源的线索,以找到问题所在和解决方案

null
可以有不同的含义:未设置为另一个值的变量将是
null
,但有时程序员故意使用null值来表示没有值。数据库具有可为空的字段,JSON缺少值。丢失的信息可能确实是信息本身。变量
bool userwantspizzafordiner可能用于
true
;当用户拒绝时,code>可能用于
false
;当用户尚未选择某个内容时,code>可能仍为
null
。这不是一个错误,它是故意使用的,需要相应地处理

我怎么修理它? 找到它 使用错误消息附带的堆栈跟踪来确定错误发生在哪一行。然后在该行上设置断点。当程序到达断点时,检查变量的所有值。其中一个是
null
,请找出哪一个

修好它
一旦知道它是哪个变量,就可以了解它是如何变成
null
。它是从哪里来的?这个值一开始就没有设定过吗?这个值是另一个变量吗?那个变量是如何得到它的值的。这就像一行面包屑,你可以跟着它走,直到你发现某个变量从未被设置,或者你可能发现某个变量被故意设置为
null
。如果这是无意的,就把它修好。将其设置为所需的值。如果这是故意的,那么您需要在程序中进一步处理它。也许你需要另一个
,如果
,为这种情况做些特别的事情。如果有疑问,您可以询问有意将其设置为
null
的人他们想要实现的目标。

只是您试图调用的变量未定义或为null

someClass.xyz();

这里的
someClass
null

这应该是一个规范的复制目标。看见请随意改进Q或A。在不知道颤振/飞镖的情况下,我猜这是他们的@TylerH等价物,这是正确的。遵循这一点,这个解决方案可以有助于解决这个问题。它实际上与此无关,除此之外,那个人也有这个错误。如何解决这个问题的答案在这里。