3

Android API レベル 11 の機能が必要ですが、targetSdkVersion を 10 に設定すると、必要な古いスタイルのメニュー (メニュー ボタン) が表示されます。これらの値の設定は「合法」ですか、それとも targetSdkVersion は minSdkVersion 以上である必要がありますか?

(注:うまくいくようです!)

4

2 に答える 2

4

ドキュメントが について述べているようにandroid:targetSdkVersion

アプリケーションが対象とする API レベルを指定する整数。設定されていない場合、デフォルト値は minSdkVersion に指定された値と同じです。この属性は、ターゲット バージョンに対してテストしたことをシステムに通知し、システムはターゲット バージョンとのアプリの前方互換性を維持するために互換動作を有効にすべきではありません。アプリケーションは、古いバージョン (minSdkVersion まで) でも実行できます。

いずれにせよ、targetSdkVersionは常に より大きいか等しい必要があります。minSdkVersionこれは、アプリを の下で実行できないためですminSdkVersiontargetSdkVersionより少ない値を入力した場合minSdkVersionは、このアプリを でテストしたことを Android システムに伝えていることを意味しますがtargetSdkVersion、これは不可能です (アプリは までのデバイスでしか実行できないためminSdkVersion)。

したがって、矛盾により、targetSdkVersionは常に より大きくなければなりませんminSdkVersion

于 2015-08-11T07:49:08.557 に答える
0

常にtargetSdkVersionより大きい を に等しくしminSdkVersionます。

バージョンをバイパスしandroid:targetSdkVersionて、特定の API レベルの機能を使用できます。この問題を解決する最善の方法は、実行時にデバイスのバージョンをプログラムで判断し、ハードコードされた値を指定するのではなく、API 固有の実装を使用することです。

こちらをご覧ください。

  // Make sure we're running on Honeycomb or higher
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        // set the new menu styles
    } else {
      // do nothing and it will show the default theme
}

こちらの公式ドキュメントを確認してください。

http://developer.android.com/training/basics/supporting-devices/platforms.html#version-codes

于 2015-08-11T07:57:46.690 に答える