プロジェクトを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に自動的にメソッドを再作成させると、すでに持っていたのと同じ引数名が使用されるので、問題がどこにあるのかはわかりません。私です。
これは私がオーバーライドしたすべてのメソッドを手動で手作業で再作成しなければならないという非常に面倒な作業になります。なぜこれが起こるのか、またはそれをどう修正するのか誰かが説明できれば私はとても幸せです。
多分それは私が別のメソッドの引数の内側にある、メソッドをフォーマットしている方法によるものですか?
EclipseはJava 1.5にデフォルト設定されており、インターフェースメソッドを実装するクラスがあります(Java 1.6では@Override
でアノテーションを付けることができますが、Java 1.5ではスーパークラスメソッドをオーバーライドするメソッドにのみ適用できます)。
プロジェクト/ IDE設定に移動し、Javaコンパイラー・レベルを1.6に設定します。また、Eclipseからプログラムを実行するためにJRE 1.6を必ず選択してください。
Eclipse Galileo でEclipse - > Preferencesメニュー項目に行き、そしてダイアログでJavaとCompilerを選択します。
今でもそれは1.6でコンパイラコンプライアンスレベルを示すかもしれません、それでもあなたはまだこの問題を見ます。そこで今度は " プロジェクト固有の設定を構成する... "のリンクを選択してください。そこにプロジェクトが1.5に設定されているのが見えますが、これを1.6に変更してください。影響を受けるすべてのプロジェクトに対してこれを実行する必要があります。
このビザンチンメニュー/ダイアログインターフェースはEclipseの貧弱なUIデザインの典型です。
これがalphazeroとPaulの方法の両方を試してもうまくいかなかった他の誰かに起こる場合。
私にとって、EclipseはProject> Clean ...を実行した後でも、コンパイルエラーをどういうわけか「キャッシュ」しています...
[Project]> [Build Automatically]のチェックを外してから、[Project]> [Clean]を実行してから、もう一度ビルドします。
また、疑問がある場合はEclipseを再起動してみてください 。これは多くの厄介な、説明できないエラーを修正することができます。
この問題を解決するには、[プロジェクトのプロパティ] - > [Javaコンパイラ] - > [1.6コンパイラ準拠レベルの選択] - > [適用]を選択します。
パウロの答えは私のために部分的に働きました。私はまだ1つエラーがありました。それで、それに加えて、私はまたProperties-> Project Facetsに行かなければならず、そこでJavaのバージョンを1.5から1.6に設定しました。
たぶんそれは役立ちます。
私の場合、みんな上の解決策はどれもうまくいきませんでした。
プロジェクトワークスペース内のファイルを削除しなければなりませんでした。
そしてフォルダ:
それから私は前に働いていた同じようなプロジェクトからそれらをコピーしました。これで私の壊れたプロジェクトは修正できました。
もちろん、前の方法を試す前にこの方法を使わないでください。
上記のいずれでも解決しない場合は、適切な " Execution environment "を選択し、 not "Alternate JRE"を選択してください。
以下にあります。
プロジェクト - >ビルドパス - >ライブラリ
JRE System Library
を選択してEdit...
をクリックしてください。
「代替JRE ...」が選択されている場合は、それをJavaSE-1.8 (jre1.8.0_60)
のような適切な「実行環境」に変更します。理由はわかりませんが、これで解決します。
これは私が二度目にこの問題に遭遇した時です。 alphazeroの推奨によると、初めて動作しました。しかし、私は1.6に設定された第2の時間にそれだけで「CACHE」クリーンと再構築した後、このエラーのようにそれを動作しません。
>エラーがまだここに - Rollin_sが言ったように「自動的にビルド」オフしてみてください!
そこで、私は問題のあるプロジェクト(既に1.6に設定されている)をパッケージエクスプローラーから削除して再度インポートします - >それは今度は再構築を開始し、エラーは発生しません
これが誰かに役立つことを願っています
スーパークラスのメソッドエラーをオーバーライドする必要がある修正は難しくありません。Java1.6から@Overrideアノテーションをインターフェースメソッドと一緒に使用できるため、Javaソースバージョンを1.6に変更するだけです。ソースバージョンを1.6に変更するには、以下の手順に従います。
私の場合、この問題は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]を押します。
それでおしまい。お役に立てれば。
私の場合、上記の解決策はどれもうまくいきません。私は自分のソースコードを別のフォルダにチェックアウトしなければなりません。 Eclipseから[ファイル] - [ワークスペースの切り替え] - [その他]を選択してから、新しいワークスペースにコードをインポートします。それはその後も機能します。
これは、あなたのMavenプロジェクトが異なるCompiler Complianceレベルを使用し、Eclipse IDEが異なるCompiler Complianceレベルを使用している場合に起こります。これを修正するには、MavenプロジェクトのCompiler ComplianceレベルをIDE usesレベルに変更する必要があります。
1)Eclipse IDEでのJava Compiler Complianceレベルの用途を見る
*)[ウィンドウ] - > [設定] - > [コンパイラ] - > [コンパイラの準拠レベル]:1.8(または1.7、1.6、など)
2)MavenプロジェクトのJava Compiler Complianceレベルを変更する
*) "プロジェクト" - > "プロパティ" - > "Java Compiler"を選択 - > Compiler Complianceレベルを変更する:1.8(または1.7、1.6、その他)