我有一个使用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)


该程序(在applet中运行)可以通过鼠标拖动,滑块等完美运行,直到按下某个键。似乎有某种未知的键侦听器正在等待输入并且使用不正确?很难说,因为异常是指与我编写的处理代码无关的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定义,并且不会发生异常。

最佳答案

原来这是与使用2.0b1核心jar文件有关的问题,可以通过从http://processing.org/download/更新到2.0b3来解决

请在此处