如何解决为什么我在 Processing.py 中收到 strokeWeight() 的 NullPointerException 异常?
快速免责声明:我是一个新手,所以这个问题可能只是我没有看到明显的问题,但基本上是在我运行时
def setup():
size(400,400)
def test():
strokeWeight(5)
circle(100,100,100)
test()
在处理中我收到以下错误:
processing.app.SketchException: java.lang.NullPointerException
at processing.core.papplet.strokeWeight(papplet.java:14431)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:188)
at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:206)
at org.python.core.PyObject.__call__(PyObject.java:497)
at org.python.core.PyObject.__call__(PyObject.java:501)
at org.python.core.PyMethod.__call__(PyMethod.java:141)
at org.python.pycode._pyx58.test$2(sketch_210426a.pyde:6)
at org.python.pycode._pyx58.call_function(sketch_210426a.pyde)
at org.python.core.PyTableCode.call(PyTableCode.java:171)
at org.python.core.PyBaseCode.call(PyBaseCode.java:139)
at org.python.core.PyFunction.__call__(PyFunction.java:413)
at org.python.pycode._pyx58.f$0(sketch_210426a.pyde:1)
at org.python.pycode._pyx58.call_function(sketch_210426a.pyde)
at org.python.core.PyTableCode.call(PyTableCode.java:171)
at org.python.core.PyCode.call(PyCode.java:18)
at org.python.core.Py.runcode(Py.java:1614)
at org.python.core.Py.exec(Py.java:1658)
at org.python.pycode._pyx57.f$0(/var/folders/vf/3zy00t252_372n6n1n060tc00000gn/T/sketch_210426a6112183873956099370/sketch_210426a.pyde:96)
at org.python.pycode._pyx57.call_function(/var/folders/vf/3zy00t252_372n6n1n060tc00000gn/T/sketch_210426a6112183873956099370/sketch_210426a.pyde)
at org.python.core.PyTableCode.call(PyTableCode.java:171)
at org.python.core.PyCode.call(PyCode.java:18)
at org.python.core.Py.runcode(Py.java:1614)
at org.python.core.Py.exec(Py.java:1658)
at org.python.util.pythoninterpreter.exec(pythoninterpreter.java:276)
at jycessing.pappletJythonDriver.processSketch(UnkNown Source)
at jycessing.pappletJythonDriver.findSketchMethods(UnkNown Source)
at jycessing.Runner.runSketchBlocking(UnkNown Source)
at jycessing.mode.run.SketchRunner.lambda$startSketch$3(UnkNown Source)
at java.lang.Thread.run(Thread.java:748)
at jycessing.mode.run.SketchRunner.convertPythonSketchError(UnkNown Source)
at jycessing.mode.run.SketchRunner.lambda$startSketch$3(UnkNown Source)
at java.lang.Thread.run(Thread.java:748)
有趣的是,只有在定义了 Processing 的任何一个内置函数(例如 setup()
、draw()
或 mouseClicked
)时,我才会返回错误,所以如果我运行:
def why_arent_you_working():
print("please")
def test():
strokeWeight(5)
circle(100,100)
test()
why_arent_you_working()
出于某种原因它会起作用。
我已经尝试了 10 个关于 NullPointerException
的不同主题,但我似乎无法找到我做错了什么。正如我在这篇文章的开头一样,我是一个新手,所以这可能是我的一些愚蠢的疏忽,但如果有人帮助我就太好了。
解决方法
这可能是“混合活动模式和静态模式”的结果。主动模式是当您使用 SELECT u.username,Sum(t1.amount) AS t1Sum,Sum(t2.amount) AS t2Sum,Sum(t3.amount) AS t3Sum
FROM users u
JOIN transactions t1
ON t1.user_id = u.id
AND t1.type = 0
AND t1.id <= 16
JOIN transactions t2
ON t2.user_id = u.id
AND t2.type = 1
AND t2.id <= 16
JOIN transactions t3
ON t3.user_id = u.id
AND t3.type = 4
AND t3.id <= 16
WHERE u.id = 4
和/或 setup()
时,而静态模式是您不使用时。基本上,如果您使用 draw()
,则不能调用缩进(或变量定义)之外的任何函数。在屏幕上画圆的标准方法是这样的:
setup()
def setup():
size(400,400)
def draw():
strokeWeight(5)
circle(100,100,100)
的调用方式与 draw()
一样:它会自动调用,无需您在任何地方显式调用它。
请记住,setup()
是一个循环,因此它会持续运行,直到调用 draw()
。
当你声明一个变量时,你所做的就是创建指向该变量的东西。即当我们创建一个变量 x = 5 时。x
只是一个指向数字 5
的引用。
NullPointerException
当您指向 Null
时出现。我对 strokeWeight 方法不太熟悉,所以我不能确切地告诉你,但如果你为我添加更多的代码,我可以尝试提供更多帮助。
在日志文件(您编码的第二部分)中,您可以单击行号,它将带您查看错误来自方法的哪一部分。
所以下面它告诉我们 NullPointerException
来自第 14431 行中名为 processing.core.PApplet.strokeWeight
的某个地方。如果您可以单击该数字并将该方法复制到您的原始帖子中,我可以尝试提供更多帮助从那里开始。
processing.app.SketchException: java.lang.NullPointerException at processing.core.PApplet.strokeWeight(PApplet.java:14431)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。