2012-03-30 18 views
6

Ich werde jetzt verrückt. Gogelte das, dachte eine Art IDE-Bug. Vielleicht bin ich blind und kann nichts sehen ... aber das war vor einer Stunde noch in Ordnung. Ich habe den ganzen Code auskommentiert und trotzdem wird er nicht kompiliert.Fehler: "Syntaxfehler auf Token"; ", erwartet" Warum?

public class CityExplorerPoi extends Activity { 

private POI displayedPOI = null; 
private MediaPlayer mPlayer; 
enum audioState { 
    Idle,    //Idle, not initialized 
    Initialized,  //Initialized, not prepared 
    Prepared,   //Prepared 
    Started,   //Playing 
    Stopped,   //needs preparing 
    Paused,    //can be Started or Stopped 
    Preparing,   //... 
    End,    //Released, useless 
    Error,    //... 
    PlaybackCompleted //can be Started from beginning or Stopped 
}; 
audioState aState; <<<<<<<<<<ERROR 

mPlayer = new MediaPlayer(); 
} 

Dieser Code hat auf der Linie einen Kompilier Fehler markiert mit Fehlermeldung, Syntaxfehler auf Token „;“, erwartet

Mit ENUM Erklärung ohne zu gehen, habe ich versucht; nach }. Versucht zu setzen; nach dem letzten Eintrag (PlaybackCompleted) und noch nichts ???

Irgendwelche Ideen? Was bin ich dabei :(

+0

Haben Sie versucht, Ihr Projekt zu reinigen? – eightx2

Antwort

16

Dies ist das eigentliche Problem.

mPlayer = new MediaPlayer(); 

Das ist nur eine Aussage ist - aber es ist nicht in einem Konstruktor, Methode oder andere initializer Es ist nicht klar warum Sie dies nicht tun nur einen Wert an dem Punkt der Erklärung zuweisen.

private MediaPlayer mPlayer = new MediaPlayer(); 

ich auch das redundante Semikolon Entfernen am Ende der Enumeration Erklärung empfehlen würde

+0

D'oh :(Ich weiß, aber ich war so blind, danke! – Dusko

4

Es ist kein IDE-Fehler.

Sie haben ein Semikolon nach dem Schließen} der Enumeration. Das ist nicht erforderlich.

Sie haben auch mPlayer = new MediaPlayer(); Floating in Ihrem Code, außerhalb einer Methode.

Ich würde vorschlagen, ein gutes Buch über Java zu lesen, wie diese: http://www.amazon.co.uk/Agile-Java-Crafting-Test-Driven-Development/dp/0131482394

und ein gutes Buch auf Android: http://www.amazon.co.uk/Android-Application-Development-Dummies-Computers/dp/047077018X/ref=sr_1_1?s=books&ie=UTF8&qid=1333106527&sr=1-1

1

Das Problem hier ist.

mPlayer = new MediaPlayer(); 

Sie ordnen den Wert an der Stelle der Deklaration zu. Genau so.

public class CityExplorerPoi extends Activity { 

    private POI displayedPOI = null; 

    enum audioState { 
     Idle,    //Idle, not initialized 
     Initialized,  //Initialized, not prepared 
     Prepared,   //Prepared 
     Started,   //Playing 
     Stopped,   //needs preparing 
     Paused,    //can be Started or Stopped 
     Preparing,   //... 
     End,    //Released, useless 
     Error,    //... 
     PlaybackCompleted //can be Started from beginning or Stopped 
    }; 
    audioState aState; 
    MediaPlayer mPlayer = new MediaPlayer(); 
} 
Verwandte Themen