NullPointerException

Mindstorms und Delphi, Basic...
Läuft etwas nicht? für den NXT

Moderator: Moderatoren

Benutzeravatar
grendelscout
Schreibt viel
Schreibt viel
Beiträge: 90
Registriert: 20. Dez 2006 10:28
Wohnort: Reichenbach im Vogtland
Kontaktdaten:

NullPointerException

Beitragvon grendelscout » 6. Okt 2007 11:52

Hi!
Ich bin grade dabei, NXT mit LeJOS zu programmieren, aber wenn ichs starten will, kommt dauernd:

Exception:
Class: 8 (Bedeutet NullPointerException)
Method: 0/72/73 (irgendwas von den dreien; bedeutung unbekannt)

was heißt das?!

hier ein Programm( von vielen,) wo es hackt:
(das Ist das letzte Tribot-Beispielprogramm, solls zumindest werden)

Code: Alles auswählen

import lejos.nxt.*;

public class Transporter implements SensorPortListener {
   static SensorPort [] PORTS;
   TouchSensor T;
   SoundSensor S;
   UltrasonicSensor U;
   LightSensor L;
   public static void main(String[] args) {
      Transporter transporter=new Transporter();
      TouchSensor T=new TouchSensor(PORTS[0]);
      LightSensor L=new LightSensor(PORTS[1],true);
      UltrasonicSensor U=new UltrasonicSensor(PORTS[2]);
      SoundSensor S=new SoundSensor(PORTS[3],true);
      transporter.add();
   }
   public void stateChanged(SensorPort arg0, int arg1, int arg2) {
      if(arg0==PORTS[2]){
         if(arg2<=100){
            Motor.B.forward();
            Motor.C.forward();
            while(T.isPressed()==false){}
            Motor.B.stop();
            Motor.C.stop();
            while(S.readValue()<30){}
            Motor.A.rotateTo(-90);
            Motor.B.rotate(-325);
            try{
            Thread.sleep(1000);
            } catch(InterruptedException e){}
            Motor.C.rotate(350);
            try{
            Thread.sleep(1000);
            }catch(InterruptedException e){}
            while(L.readValue()>=35){}
            Motor.B.stop();
            Motor.C.stop();
            Motor.A.rotateTo(90);
         }
      }
      
   }
   private void add() {
      for(int i=0;i>3;i++){
         SensorPort.PORTS[i].addSensorPortListener(this);
      }
   }
}


funktion: wenn Ultraschallsensor was <1m ist, fahren bis anstoßen, Hände schließen (Motor A) wenn geräuschsensor was hört, umdrehen, bis zur schwarzen Linie fahren und hände öffnen
Wenn man auf intergalaktische Reisen geht, ist es immer ratsam, ein Handtuch mitzunehmen. Handtücher sind nämlich die nützlichsten Gegenstände im Universum.

Benutzeravatar
chrimo
Moderator
Moderator
Beiträge: 933
Registriert: 23. Okt 2006 18:59
Wohnort: Sauensiek (Niedersachsen, Krs.Stade)

Beitragvon chrimo » 6. Okt 2007 15:15

Moin,

ich weiss zwar nicht was das soll, aber das ist der Tot aller Programme...
for(int i=0;i>3;i++){
SensorPort.PORTS[i].addSensorPortListener(this);


Die Schleife loopt bis maxinit und dann ?
Bye
Chrimo
+++ath+++
NO CARRIER

Benutzeravatar
grendelscout
Schreibt viel
Schreibt viel
Beiträge: 90
Registriert: 20. Dez 2006 10:28
Wohnort: Reichenbach im Vogtland
Kontaktdaten:

Beitragvon grendelscout » 21. Dez 2007 15:56

bei dem Teil add-et das Programm alle Sensoren zum Sensorlistener. von 0 bis 3.
Wenn man auf intergalaktische Reisen geht, ist es immer ratsam, ein Handtuch mitzunehmen. Handtücher sind nämlich die nützlichsten Gegenstände im Universum.

Sallac
Schreibt viel
Schreibt viel
Beiträge: 154
Registriert: 20. Sep 2007 12:45

Beitragvon Sallac » 25. Dez 2007 11:44

Chrimo meint, dass du die Schleife falsch interpretierst.

Code: Alles auswählen

for(int i=0;i>3;i++)
{
  SensorPort.PORTS[i].addSensorPortListener(this);
}


Die Schleife wird ausgeführt, solange i größer als 3 ist.
i ist am Anfang 0.
-> Die Schleife wird nie ausgeführt.
-> Du addest keinen Port Listener.
-> Exception

Benutzeravatar
andy-thekamikaze
Weniger als 15 Beiträge
Weniger als 15 Beiträge
Beiträge: 14
Registriert: 26. Okt 2007 14:17
Wohnort: Freigericht

Beitragvon andy-thekamikaze » 28. Dez 2007 16:49

for(int i=0;i<3;i++)
{
SensorPort.PORTS[i].addSensorPortListener(this);
}

so muss es heisen...
i soll kleiner sein als 3

bei der for schleife ist es die ausführungsbedingung, nicht die abbruch bedingung
Ärgere dich nicht! Ärgere andere!


Zurück zu „sonstige Software und Software-Probleme“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 Gäste

Lego Mindstorms EV3, NXT und RCX Forum : Haftungsauschluss