2012-02-10 20 views
3

私はAndroid開発用にEclipse Indigoを使用しています。私が直面している問題は、非アクティビティの上書きされたメソッドに対して@Overrideを許可しないということです。Eclipse Indigoでは、非アクティビティ上書きメソッドの@Overrideを使用できません。

Remove "@Override" annotation 

The method onError(MediaPlayer, int, int) of type MyActivity must override a superclass method 

そして、この問題を解決するために、私が提案しています:たとえば、私は、MediaPlayerののonErrorListnerを実装し、私はそれで、それは以下のコンパイル時エラー与える@Overrideを属性に設定した場合@Overrideを削除することで問題は解決しますが、なぜそれについて不平を言いますが、削除すると親の機能が停止する可能性がありますか?

この「@Override」属性を使用する多くの例をダウンロードしました。この例では、これが使用されていることを証明する非アクティブなメソッドがあり、わかりやすさが失われる可能性があります。しかし、これらの例をEclipse Indigoで実行することはできません。これらの例をすべてのクラスから削除する必要はありません。

なぜですか?

ご協力いただきまして誠にありがとうございます。

+2

ソースの互換性が1.5に設定されています。1.5では、インターフェイスではなくクラスのみのメソッドをオーバーライドできます。 Eclipseプロジェクトで、コンテキストメニューの[プロパティ]を選択し、[Javaコンパイラ]を選択して[プロジェクト固有の設定を有効にする]をオンにします。 "Compiler compliance level"を1.6に変更し、プロジェクトを再構築します。 – Jens

+0

アンドロイドプロジェクトを右クリック - >アンドロイドツール - >プロジェクトのプロパティを修正します。 –

答えて

8

プロジェクトJavaコンパイラレベルが1.6ではなく1.5に設定されています。 hereを参照してください。

+0

こんにちは!私は同じ問題がありますが、私のJavaコンパイラは1.7に設定されています。どうすればこの問題を解決できますか? – jayellos

+1

Android SDKは実際にJavaレベル1.7で動作しますか? 1.6に設定するだけです。 –

0

この行を削除することはできません。あなたのEclipseでJDKのバージョンに変更する必要がありますし、あなたはそのようなエラーを取得しません。以下の手順に従います。

プロジェクト&を右クリックして[プロパティ]を選択します。

次に、左側のセクションで、Javaコンパイラの選択&を選択して、インストールしたJDKのバージョンを選択します。既に選択されている場合は、&を試してください。

関連する問題