我有一个处理项目,它使用在 eclipse 中运行的 ControlP5 库,在该库中,在键盘上的任何键按下时,都会因 IllegalArgumentException 而崩溃:
Exception in thread "Animation Thread" java.lang.IllegalArgumentException: argument type mismatch
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at processing.core.PApplet$RegisteredMethods.handle(PApplet.java:1076)
at processing.core.PApplet.handleKeyEvent(PApplet.java:2848)
at processing.core.PApplet.dequeueKeyEvents(PApplet.java:2793)
at processing.core.PApplet.handleDraw(PApplet.java:2132)
at processing.core.PGraphicsJava2D.requestDraw(PGraphicsJava2D.java:197)
at processing.core.PApplet.run(PApplet.java:1998)
at java.lang.Thread.run(Unknown Source)
该程序(在小程序中运行)可以通过鼠标拖动、滑块等完美运行,直到按下一个键。似乎有某种未知的 keylistener 等待输入并错误地使用它?很难说,因为异常是指与我编写的处理代码无关的 java 代码。
即使我有一个只定义 ControlP5 对象的程序,该程序也会遇到相同的错误:
import processing.core.*;
import controlP5.*;
public class Lensing extends PApplet {
ControlP5 controlP5;
public Lensing() {
}
public void setup() {
controlP5 = new ControlP5(this);
}
public void draw() {
}
public static void main(String args[]) {
PApplet.main(new String[] { "--present", "edu.umd.astro.Lensing" });
}
}
注释掉单个controlP5的定义,不会出现异常。