プロジェクトをEclipseにインポートした後の「スーパークラスメソッドをオーバーライドする必要がある」エラー


1251

プロジェクトをEclipseに再インポートする必要がある場合(Eclipseを再インストールした場合、またはプロジェクトの場所を変更した場合)は、オーバーライドされたメソッドのほとんどすべてが正しくフォーマットされていないため、エラーが発生します。

メソッドはスーパークラスメソッドをオーバーライドする必要があります

これは、何らかの理由でAndroidプロジェクトで発生することであり、メソッドの引数の値が常に入力されるとは限らないため、手動で手動で入力する必要があることに注意してください。例えば:

list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

    //These arguments have their correct names
    public void onCreateContextMenu(ContextMenu menu, View v, 
                                    ContextMenuInfo menuInfo) {                 
    }

});

最初は次のように入力されます:

list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

    //This methods arguments were not automatically provided    
    public void onCreateContextMenu(ContextMenu arg1, View arg2,
                                    ContextMenuInfo arg3) {
    }

});

奇妙なことに、コードを削除してEclipseが自動的にメソッドを再作成すると、すでに持っているのと同じ引数名が使用されるため、問題の場所が本当にわかりません。それ以外は、メソッドを自動フォーマットします私。

これは、オーバーライドされたメソッドをすべて手動で手動で再作成しなければならないので、非常に面倒になります。なぜこれが起こるのか、またはそれを修正する方法を誰かが説明できる場合。とてもうれしくなる。

多分それは別のメソッドの引数の中にあるメソッドをフォーマットしている方法が原因ですか?


1
この項目を確認してください。オーバーライドの使用について説明しています。特にこの状況だけでなく、すべてにとってこの実践は非常に重要だと思います。stackoverflow.com/questions/94361/...
oagostinho

回答:


1433

EclipseのデフォルトはJava 1.5で、インターフェースメソッドを実装するクラスがあります(Java 1.6ではで注釈を付けることができます@Overrideが、Java 1.5ではスーパークラスメソッドをオーバーライドするメソッドにのみ適用できます)。

プロジェクト/ IDE設定に移動し、Javaコンパイラレベルを1.6に設定します。また、Eclipseからプログラムを実行するためにJRE 1.6を選択していることを確認してください。


35
プロジェクトは1.6に設定されていたので、星を狙って1.5に設定し、再構築してから1.6に戻しました。奇跡的にこれは私の問題を解決しました。私を正しい方向に向けてくれてありがとう!
Michael Krauklis、2011

6
同じ問題を抱えている...この回答で示された提案を試みましたが、まだ成功していません。:( :(
aditya_gaur '25

6
@MichaelKrauklis私は1.6ですが、この問題が発生しています。1.5に設定してクリーニングし、1.6に戻してもう一度クリーニングしました。まだ解決していません。何か案は?
ペーチェリエ

6
ここでも同じ問題、私の場合、私はJDK 1.6をインストールしていません。最新の1.7のみをインストールしていますが、Androidでは動作しないようです。古い1.6をインストールしてから、これらの指示に従って作業する必要があります:)
NoBugs

4
(他の回答へのコメントのように)クリーンビルドとそれに続く再起動が必要になることがよくあります。
gsingh2011

308

Eclipseのガリレオ、ダイアログでJavaおよびコンパイラを選択し、> [環境設定]メニュー項目-あなたは、Eclipseに行きます。

今でも、コンパイラの準拠レベルが1.6と表示されている可能性がありますが、この問題は依然として見られます。リンク「プロジェクト固有の設定を構成...」を選択すると、プロジェクトが1.5に設定されていることがわかります。これを1.6に変更します。影響を受けるすべてのプロジェクトでこれを行う必要があります。

このビザンチンメニュー/ダイアログインターフェイスは、Eclipseの貧弱なUIデザインの典型です。


78

これがalphazeroとPaulの方法の両方を試してもまだうまくいかなかった人に起こった場合。

私にとって、Eclipseは、プロジェクト>クリーン...を実行した後でも、コンパイルエラーを何らかの形で「キャッシュ」します

[プロジェクト]> [自動ビルド]のチェックを外してから、[プロジェクト]> [クリーン]を実行してから、もう一度ビルドする必要がありました。

また、疑問がある場合は、Eclipseを再起動してみてください。これにより、多くの厄介で説明できないエラーを修正できます。


4
それだけでなく、[クリーン]ダイアログで[ビルドを自動的に開始]をオフにしました。それだけが私にとってうまくいきました。
Wilerson、2012年

3
エラーを削除した後でも、Eclipseを再起動する必要がありました。
デイブキャメロン

42

この問題を解決するには、プロジェクトのプロパティに移動します-> Javaコンパイラ-> 1.6へのコンパイラ準拠レベルを選択します->適用します。


22

ポールの答えは部分的に私のために働いた。私はまだその時一つのエラーがありました。そのため、それに加えて、[プロパティ]-> [プロジェクトファセット]に移動する必要があり、Javaバージョンを1.5から1.6に設定しました。

多分それは役立ちます。


14

私の場合、上記の解決策はどれもうまくいきませんでした。

プロジェクトワークスペース内のファイルを削除する必要がありました。

  • 。事業
  • .classpath

そしてフォルダ:

  • 。設定

次に、以前機能していた同様のプロジェクトからのものをコピーしました。これは私の壊れたプロジェクトをなんとか修正しました。

もちろん、以前の方法を試す前にこの方法を使用しないでください!。


14

上記のいずれも役に立たない場合、「代替JRE」ではなく、適切な「実行環境」が選択されていることを確認してください。

以下にあります:

プロジェクト->ビルドパス->ライブラリ

を選択してJRE System LibraryをクリックしますEdit...

「代替JRE ...」が選択されている場合は、のような適切な「実行環境」に変更しJavaSE-1.8 (jre1.8.0_60)ます。理由はわかりませんが、これで解決します。


2
「実行環境」を選択して[OK]を押すと、エラーは発生しません。次に、同じダイアログに戻り、Eclipseからエラーが発生したときに以前に選択していた「Workspace default JRE(...)」を選択し、次に[OK]を押しましたが、エラーは発生しませんでした?!?これはEclipse UIのバグかそのようなものでなければなりません(私はEclipse Neon 4.6.2を使用しています)
mljrg

11

これがこの問題に遭遇するのは2回目です。初めてalphazeroの推奨に従って動作しました。しかし、2回目に1.6に設定した場合、クリーンおよびリビルド後にこのエラーが「キャッシュ」のように機能しません。

Rollin_sが言ったように 'Build Automatically'をオフにしてみてください->エラーはまだここにあります!

そのため、問題のプロジェクト(すでに1.6に設定されています)をパッケージエクスプローラーから削除して再度インポートします->今回は再構築が開始され、エラーは発生しません

これが誰かを助けることを願っています


10

修正はスーパークラスメソッドエラーをオーバーライドする必要がありますエラーは難しくありません。Java1.6から@Overrideアノテーションをインターフェースメソッドと共に使用できるため、Javaソースバージョンを1.6に変更するだけです。ソースバージョンを1.6に変更するには、以下の手順に従います。

  1. プロジェクトを選択し、右クリックして、プロパティ
  2. Javaコンパイラを選択し、「プロジェクト固有の設定を有効にする」チェックボックスをオンにします
  3. コンパイラのコンプライアンスレベルを1.6に設定します
  4. 変更を適用

10

私の場合、この問題は、MavenプロジェクトをEclipseにインポートしたときに発生しました。これを解決するために、に以下を追加しましたpom.xml

<properties>
   ...
   <maven.compiler.source>1.8</maven.compiler.source>
   <maven.compiler.target>1.8</maven.compiler.target>
</properties>

次に、プロジェクトのコンテキストメニューで、[Maven-> Update Project ...]に移動し、[OK]を押します。

それでおしまい。お役に立てれば。


おかげで、これは親のpom構成などを上書きしていると思います。(私は逆の問題を広告します、日食からの問題はありませんが、Mavenのコンパイラーが私に「オーバーライドする必要があります」などと
スローしました

6

私の場合、上記の解決策はどれも機能しません。ソースコードを別のフォルダーにチェックアウトする必要があります。Eclipseから[ファイル]> [workSpacesの切り替え]> [その他...]を選択し、コードを新しいワークスペースにインポートします。それはその後動作します。


2

これは、mavenプロジェクトが異なるコンパイラコンプライアンスレベルを使用し、Eclipse IDEが異なるコンパイラコンプライアンスレベルを使用する場合に発生します。これを修正するには、MavenプロジェクトのコンパイラコンプライアンスレベルをIDEが使用するレベルに変更する必要があります。

1)Eclipse IDEでJavaコンパイラのコンプライアンスレベルの使用を確認するには

*)ウィンドウ->設定->コンパイラ->コンパイラコンプライアンスレベル:1.8(または1.7、1.6、など)

2)MavenプロジェクトのJavaコンパイラー準拠レベルを変更するには

*)[プロジェクト]-> [プロパティ]-> [Javaコンパイラ]を選択します->コンパイラのコンプライアンスレベルを変更します:1.8(または1.7、1.6、など)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.