18

ActionBarSherlock 4.0.3 をダウンロードして解凍し、libraryフォルダーから新しいプロジェクトを作成しました。Eclipse によると、srcフォルダーはエラーでいっぱいだったので、オンラインでさまざまな指示に従いandroid-support-v4.jarました。それでも、プロジェクトには 194 個のエラーがあり、そのすべてが「呼び出しには API レベル 11 が必要です (現在の最小値は 7)」です。エラーの 1 つを見ると、次のように表示されます。

@Override
public void invalidateOptionsMenu() {
    getSherlock().dispatchInvalidateOptionsMenu();
}

public void supportInvalidateOptionsMenu() {
    invalidateOptionsMenu();
    //the previous line has this error in Eclipse:
    //Call requires API level 11 (current min is 7): android.app.Activity#invalidateOptionsMenu
}

以前の関数でオーバーライドされているため、これは私には奇妙に見えますinvalidateOptionsMenu()が、Eclipse は、新しい API レベルが必要な関数についてまだ不平を言っています。他のエラーを見ると、これは他の多くのエラーにも当てはまります。

私は Java よりも Python の経験が豊富なので、何が原因でこのようなことが起こるのかわかりません。助けていただければ幸いです。助けていただける場合は、これの原因と、それを解決するために何をしたかについても説明していただけますか? 問題が発生するたびに誰かに尋ねるのではなく、私も学びたいです。

4

5 に答える 5

37

リントチェックを実行した後、私に起こりました。sherlock アクション バー プロジェクト -> Android ツール -> Clear Lint Markers を右クリックしてみてください。

于 2012-04-23T21:47:45.633 に答える
20

サポート jar で提供されるActivityCompatを使用します。

于 2012-12-30T22:26:07.150 に答える
7

最小 API レベル 7 を使用しており、invalidateOptionsMenu()は API レベル 11 まで存在しなかったため、デバイスが API レベル 7 を実行している場合、関数は基本クラスでも使用できないため、エラーなしでオーバーライドすることはできません。また、存在しない関数はオーバーライドできません。

于 2012-04-21T16:46:40.877 に答える
1

dbrown0708の回答を除いて、この回答はすべて間違っていますが、もっと宣言します

サポート ライブラリ v4 で提供されているように、ActivityCompatを使用して下位 API で invalidateOptionMenu を使用できます。

構文は invalidateOptionsMenu(Activity activity);

コードは

ActivityCompat.invalidateOptionsMenu(this);

レベル 11 以降の API

invalidateOptionsMenu();
于 2014-12-29T10:29:54.167 に答える
0

import android.support.v4.app.Fragment;を試して使用してください。あなたのライブラリとして

于 2014-01-17T10:02:48.377 に答える