2012-03-30 5 views
6

Je deviens fou maintenant. Googled ceci, pensé une sorte de bug IDE. Peut-être que je suis aveugle et ne peux pas voir quelque chose ... mais c'était OK il y a juste une heure. J'ai commenté tout le code et encore il ne compilera pas.ERREUR: "Erreur de syntaxe sur le jeton"; ", attendu" Pourquoi?

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

Ce code a une erreur de compilier en ligne marqué par erreur en disant Erreur de syntaxe sur jeton « », devrait

Avec déclaration enum j'ai essayé d'aller sans; après }. J'ai essayé de mettre; après la dernière entrée (PlaybackCompleted) et toujours rien ???

Des idées? Que dois-je manque :(

+0

Avez-vous essayé de nettoyer votre projet? – eightx2

Répondre

16

C'est le problème réel.

mPlayer = new MediaPlayer(); 

C'est juste une déclaration - mais pas dans un constructeur, une méthode ou autre initialiseur On ne sait pas pourquoi vous n'avez pas simplement attribuer une valeur au moment de la déclaration.

private MediaPlayer mPlayer = new MediaPlayer(); 

Je vous recommande également de retirer le point-virgule redondant à la fin de la déclaration enum

+0

D'oh :(Je sais, mais j'étais si aveugle, merci! – Dusko

4

Ce n'est pas un bug IDE.

Vous avez un point-virgule après la fermeture de l'énumération. Ce n'est pas nécessaire.

Vous avez également mPlayer = new MediaPlayer(); flottant dans votre code, en dehors d'une méthode.

Je vous suggère la lecture d'un bon livre sur Java, comme celui-ci: http://www.amazon.co.uk/Agile-Java-Crafting-Test-Driven-Development/dp/0131482394

Et un bon livre sur 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

Le problème est ici.

mPlayer = new MediaPlayer(); 

Vous affectez la valeur au point de déclaration. Juste comme ceci.

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