-2

Android 2.2 を実行する HTC Legend を使用して
、オープン ソースのnyaruka/android-sms-relayを実行する必要があります。ただし、このアプリのビルド ターゲットは Android 4.2 です。

ビルド ターゲットを 4.2 から 2.2 に単純に変更しようとしましたが、アプリをコンパイルできませんでした。

次のエラーが発生しました。

public **ActionProvider** getActionProvider() {
        // Noop
        return null;
    }

ActionProvider をタイプに解決できません


@Override
protected Context getActionBarThemedContext() {
         return mActivity.**getActionBar()**.getThemedContext();
    }

メソッド getActionBar() はタイプ Activity に対して未定義です


 ImageButton actionButton = new ImageButton(mActivity, null,
                itemId == android.R.id.**home**
                        ? R.attr.actionbarCompatItemHomeStyle
                        : R.attr.actionbarCompatItemStyle);
        actionButton.setLayoutParams(new ViewGroup.LayoutParams(
                (int) mActivity.getResources().getDimension(
                        itemId == android.R.id.**home**
                                ? R.dimen.actionbar_compat_button_home_width
                                : R.dimen.actionbar_compat_button_width),
                ViewGroup.LayoutParams.FILL_PARENT));

ホームを解決できないか、フィールドではありません

この質問に反対票を投じた人は、その理由を説明してください!

4

3 に答える 3

2

このエラーが表示されるのは、ActionBarが Android 3
で導入された新しい概念であり、2.2 では使用できないためです。

そこにはいくつかのAndroid 2.2 ActionBar サンプルがあり
、Google SDK には「ActionBarCompat」サンプルもあります。


ただし、プロジェクトを再度コンパイルするには、いくつかの変更を加える必要がある場合があります。

更新: https://github.com/nyaruka/android-sms-relayについて話していることがわかりました。 自分で別の ActionBar を使用できない場合は、プロジェクトの背後にあるコミュニティから助けを得ることができるかもしれません ( githubで) 2.2で動作させるために
も...彼らは組み込みのActionBarも使用していないようですが、これはhttp://actionbarsherlock.com/faq.htmlです。そのプロジェクトのドキュメントもチェックすることをお勧めします。

于 2013-03-01T02:02:24.303 に答える
0

Android 2.2でアクションバーを取得するには、Android互換ライブラリを使用します。これは、Android3.0以降でも機能します。

于 2013-03-01T05:34:06.067 に答える
0

2.2 API の新しいものを使用している場合、ビルド ターゲットを単にダウングレードすることはできません。上でコメントしたように、その API では使用できないため、別のアクション バーを使用する必要があります。ここで、Android 2.2 が API 8 であることがわかります http://developer.android.com/guide/topics/manifest/uses-sdk-element.html

于 2013-03-01T02:04:33.440 に答える