6

これにより、Android Facebook SDKを適切にインポートできるようになった後、eclipseがFbDialog.javaのonclickのオーバーライドを認識しないことがわかりました。

mCrossImage.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        mListener.onCancel();
        FbDialog.this.dismiss();
    }
});

また、ServiceConnectionのTokenRefreshServiceConnection実装でのonServiceConnectedおよびonServiceDisconnectedのオーバーライドも認識しません。

@Override
public void onServiceConnected(ComponentName className, IBinder service) {
    messageSender = new Messenger(service);
    refreshToken();
}

@Override
public void onServiceDisconnected(ComponentName arg) {
    serviceListener.onError(new Error("Service disconnected"));
    // We returned an error so there's no point in
    // keeping the binding open.
    mAuthActivity.unbindService(TokenRefreshServiceConnection.this);
}

3つのメソッドはすべて、警告の中で、メソッドがスーパークラスメソッドをオーバーライドする必要があることを示しています。私はまだコードを変更していません。Eclipseがタイプをそれぞれのスーパークラスで同じものとして認識することを確認し、control-shift-oを押してインポートを整理しようとしました。これは、同様の問題に対するこの回答で提案された修正です。

これらのオーバーライドはSDKの一部であり、個別のプロジェクトではありません。Facebookの指示に示されているようにAndroidSDK2.2と、理論的には以前のすべてのバージョンと互換性があるはずの4.0.3を使用するようにプロジェクトを設定しました。Facebook独自のコードをまだ機能させていません。ちなみに、代わりに使用できる瓶はありますか?これははるかに簡単になります。

4

2 に答える 2

15

プロジェクトのプロパティを推測 - > Java Compiler Compilerのコンプライアンスレベルは1.6(またはそれ以上)ではなく、1.5に設定されています。

これを変える。

@Override アノテーションで javac が失敗するのはなぜですか

于 2012-02-22T04:29:46.387 に答える
2

怠惰で迅速かつ簡単な修正は、@Overrideアノテーションを削除することです。正しい修正は、プロジェクトがJava 1.5以降にコンパイルされることを確認し、Eclipseの「プロジェクトプロパティを修正する」ことを確認し、場合によっては、Facebookライブラリプロジェクトがプロジェクトと同じAndroidSDKをコンパイルに使用することを確認することです。

于 2012-02-07T03:57:02.553 に答える