私は、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)
プログラム (アプレットで実行) は、キーが押されるまで、マウスのドラッグ、スライダーなどで完全に正常に実行されます。入力を待っていて、それを間違って使用している、ある種の未知のキーリスナーがあるようですか? 例外は、私が書いた処理コードとは無関係の 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 定義をコメントアウトすると、例外は発生しません。