Я пишу проигрыватель случайных циклов в Processing с использованием библиотеки Beads и импортирую некоторые из моих собственных циклов.Каждый раз, когда я запускаю код, он дает мне исключение NullPointerException.Файлы находятся в том же каталоге, что и эскиз, и все имена файлов написаны правильно.Я пытался использовать внутренний отладчик, и он всегда ломается, даже когда я устанавливаю точку останова в первой строке.(Я также попытался перезагрузить компьютер на случай, если это будет исправлено. Это не помогло.)
Это мой код (не весь, а только соответствующий материал).Имя класса - Randomizer.
import beads.*;
import org.jaudiolibs.beads.*;
import java.util.Random;
// samples
SamplePlayer rhythm1;
SamplePlayer rhythm2;
SamplePlayer rhythm3;
SamplePlayer rhythm4;
SamplePlayer currentRhythm;
//files
String r1file;
String r2file;
String r3file;
String r4file;
//arrays
ArrayList rhythmArray;
AudioContext ac; // to hear output
Gain gain; // to change volume
void setup() {
size(300, 300);
background(255);
r1file = sketchPath("") + "Rhythm1_80BPM.wav";
r2file = sketchPath("") + "Rhythm2_80BPM.wav";
r3file = sketchPath("") + "Rhythm3_80BPM.wav";
r4file = sketchPath("") + "Rhythm4_80BPM.wav";
// set up arrays
rhythmArray = new ArrayList<SamplePlayer>();
try {
rhythm1 = new SamplePlayer(ac, new Sample(r1file));
rhythm2 = new SamplePlayer(ac, new Sample(r2file));
rhythm3 = new SamplePlayer(ac, new Sample(r3file));
rhythm4 = new SamplePlayer(ac, new Sample(r4file));
}
catch(IOException e) {
e.printStackTrace();
exit();
}
//instantiate arraylists
rhythmArray.add(rhythm1);
rhythmArray.add(rhythm2);
rhythmArray.add(rhythm3);
rhythmArray.add(rhythm4);
}
void draw() {
button();
}
void mouseClicked() {
if (mouseX>113 && mouseX<193 && mouseY>140 && mouseY<220) randomise();
}
Это трассировка стека.
java.lang.NullPointerException
at beads.UGen.setOutsToPause(Unknown Source)
at beads.UGen.pause(Unknown Source)
at beads.Static.<init>(Unknown Source)
at beads.SamplePlayer.<init>(Unknown Source)
at beads.SamplePlayer.<init>(Unknown Source)
at Randomiser.setup(Randomiser.java:81)
at processing.core.PApplet.handleDraw(PApplet.java:2425)
at processing.awt.PSurfaceAWT$12.callDraw(PSurfaceAWT.java:1547)
at processing.core.PSurfaceNone$AnimationThread.run(PSurfaceNone.java:313)
Спасибо за вашу помощь !!