2012-03-30 27 views
6

Teraz zwariowałem. Googled to, pomyślał jakiś błąd IDE. Może jestem ślepy i nic nie widzę ... ale to było OK przed godziną. Skomentowałem cały kod i nadal go nie skompiluję.BŁĄD: "Błąd składni na tokenie"; ",, oczekiwano" Dlaczego?

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

Ten kod ma błąd compilier na linii oznaczonej błędzie błąd składni na znak „;”, oczekuje

Z deklaracji enum Starałem się iść bez; po }. Próbowałem postawić; po ostatnim wpisie (PlaybackCompleted) i wciąż nic ???

Wszelkie pomysły? Co mi brakuje :(

+0

Czy próbowałeś wyczyścić swój projekt? – eightx2

Odpowiedz

16

Jest to rzeczywisty problem.

mPlayer = new MediaPlayer(); 

To tylko stwierdzenie - ale to nie jest w konstruktorze, metody lub innego inicjatora Nie jest jasne dlaczego nie robić wystarczy przypisać wartość w momencie zgłoszenia.

private MediaPlayer mPlayer = new MediaPlayer(); 

Chciałbym również polecić usunięcie nadmiarowej średnik na końcu deklaracji enum

+0

D'oh :(Wiem, ale byłem tak ślepy, dzięki! – Dusko

4

To nie jest błąd IDE.

Po zamknięciu wyliczamy średnik. To nie jest wymagane.

Masz również zmienną mPlayer = new MediaPlayer(); w swoim kodzie, poza metodą.

Sugeruję czytając dobrą książkę o Javie, jak ten: http://www.amazon.co.uk/Agile-Java-Crafting-Test-Driven-Development/dp/0131482394

A dobra książka na Androida: 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

Problemem jest tutaj.

mPlayer = new MediaPlayer(); 

Przypisanie wartości w miejscu deklaracji. Po prostu tak.

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(); 
} 
Powiązane problemy