2017-03-20 15 views
1

Stack Overflowを検索しましたが、まったく同じ問題のリンクはありません。openOptionsMenuがminSdkVersionのLollipopタブレットで動作しない16

私が取り組んでいるアプリはレガシーアプリです。 このアプリは画像アイコンのタップでオプションメニューを開く必要があります。 アプリはアクションバーを使用しません。 minSdkVersionを16に設定して以来、オプションメニューはLollipopタブレットで開かれません。 Lollipop Smartphoneでもうまく動作します。

ここで問題は何ですか?回避策はありますか?

+0

あなたの 'targetSdkVersion'とは何ですか? – CommonsWare

+0

私はそれを設定していません。 minSdkVersionを16に設定するだけです。また、10にロールバックすると動作しますが、10以上の値に設定すると動作しません。 – LoveForDroid

+0

"設定していません" - それは意味がありません。それを8に設定し、それが役立つかどうか確認してください。 – CommonsWare

答えて

2

常にには、プロジェクトに対して定義されているtargetSdkVersionがあります。これはAndroidに "やあ、私はこのコードを書いたときにこのAPIレベルを考えていた"と言う。 Androidはこれをフォワード互換性の選択ビットとして使用し、新しいデバイスのランタイム動作を以前のものと少し近づけるように変更します。

タブレットではオプションメニューは実際には使用されませんでした。 Android 3.0からは、以前のオプションメニューがアクションバーに移行されました。 targetSdkVersionが存在しない場合、AndroidはminSdkVersiontargetSdkVersionとして扱います。 minSdkVersion/targetSdkVersionが16の場合、あなたはしっかりとアクションバーの世界に入ります。あなたのtargetSdkVersion 8に設定

はしかし、最終的には何かがより高い値にごtargetSdkVersionを高めるためにあなたの手を強制しようとしている16

にごminSdkVersionジャンプによって適用されていたものは何でも変更元に戻す必要があります。 1234のtargetSdkVersionと永遠に固執することができると仮定しないでください。次のいずれかの

  • に独自のオプションメニューそっくりの実装、または近代的な実装とその全体でアプリを置き換えるために
  • プラン、または
  • 計画アクションバーにユーザーを移行、または
  • アプリを放棄する
+1

もう一度いい答えです。 – azizbekian

関連する問題