私は今狂っています。これをグーグルで検索して、ある種のIDEバグだと思った。たぶん私は盲目で何かが見えない...しかしこれはほんの1時間前は問題なかった。私はすべてのコードをコメントアウトしたが、それでもコンパイルされません。
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();
}
このコードには、ERRORとマークされた行にコンパイラエラーがありますトークン ";"の構文エラー、、、予期される
列挙型宣言を使用して、;なしで実行しようとしました。後}。入れてみました;最後のエントリ(PlaybackCompleted)の後、まだ何もありませんか?
何か案は?私が欠けているもの:(
これが実際の問題です。
mPlayer = new MediaPlayer();
これは単なるステートメントですが、コンストラクター、メソッド、またはその他の初期化子には含まれていません。明確ではありませんなぜ宣言の時点で値を割り当てるだけではありません:
private MediaPlayer mPlayer = new MediaPlayer();
また、列挙型宣言の最後にある冗長なセミコロンを削除することをお勧めします。
IDEバグではありません。
列挙型の終了}の後にセミコロンがあります。それは必要ありません。
また、メソッドの外部のコードにmPlayer = new MediaPlayer();
が浮かんでいます。
このようなJavaに関する良い本を読むことをお勧めします: http://www.Amazon.co.uk/Agile-Java-Crafting-Test-Driven-Development/dp/0131482394
そして、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
問題はここにあります。
mPlayer = new MediaPlayer();
宣言の時点で値を割り当てます。ちょうどこのような。
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();
}