2012-03-30 33 views
6

Sto diventando pazzo ora. Ho cercato su Google, ho pensato una specie di bug IDE. Forse sono cieco e non riesco a vedere qualcosa ... ma è andata bene solo un'ora fa. Ho commentato tutto il codice e ancora non verrà compilato.ERRORE: "Errore di sintassi sul token"; ", previsto" Perché?

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(); 
} 

Questo codice ha un errore di compilier sulla linea tracciata con l'errore dicendo Errore di sintassi sul gettone "",, prevede

Con dichiarazione enum ho cercato di andare senza; dopo }. Ho cercato di mettere; dopo l'ultima voce (PlaybackCompleted) e ancora niente ???

Qualche idea? Che cosa mi manca :(

+0

Hai provato a pulire il tuo progetto? – eightx2

risposta

16

Questo è il vero problema:.

mPlayer = new MediaPlayer(); 

Questo è solo una nota - ma non è in un costruttore, metodo o altro inizializzatore Non è chiaro perché non lo fai solo assegnare un valore in corrispondenza del punto della dichiarazione:.

private MediaPlayer mPlayer = new MediaPlayer(); 

consiglio anche rimuovere la ridondanza virgola alla fine della dichiarazione enum

+0

D'oh :(Lo so, ma ero così cieco, grazie! – Dusko

4

Non è un bug IDE.

Hai un punto e virgola dopo la chiusura} dell'enumerazione. Questo non è richiesto.

Hai anche mPlayer = new MediaPlayer(); mobile nel codice, al di fuori di un metodo.

Io suggerirei la lettura di un buon libro su Java, come questo: http://www.amazon.co.uk/Agile-Java-Crafting-Test-Driven-Development/dp/0131482394

e un buon libro su 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

Il problema è qui.

mPlayer = new MediaPlayer(); 

Assegnare il valore al punto di dichiarazione. Proprio così.

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(); 
} 
Problemi correlati