web-dev-qa-db-ja.com

minSdkVersionを超えたAPIレベルの属性の使用

私はAndroid開発に不慣れで、minSdkVersionよりも大きいAPIレベルからのXMLタグの属性を使用するとどうなるか疑問に思っています。

たとえば、

<uses-sdk
    Android:minSdkVersion="9"
    Android:targetSdkVersion="20" />

そしてこれを使う:

<activity Android:logo="@drawable/iconwhatever"></activity>

「Android:logo」属性はAPIレベル11のものです。

Android Studioでは、次のエラーが発生しますが、これをそのままにしておくとどうなるか知りたいです。

Attribute "logo" is only used in API level 11 and higher. (Current min is 9)

これに関するどんな助けでも大歓迎です。

31
Michael Garner

サポートされていない属性は無視しても問題ありません。

SDKから ドキュメント

XMLリソースを解析するとき、Androidは現在のデバイスでサポートされていないXML属性を無視します。そのため、古いバージョンが壊れたときに心配することなく、新しいバージョンでのみサポートされているXML属性を安全に使用できます。そのコードに遭遇します。

50
ovmjm

XML属性の場合、新しいAPIからの属性を使用しても安全です(XMLパーサーは古いバージョンでそれらを検索しないため、単純に無視されます)。

2
kcoppock

この場合、異なるAPIである属性の操作は、XMLではなくコードを介して行う必要があります。

コードでは、それを扱うことができます。

例えば:

 if(Build.Version.SDK_INT > 10){

     .... use an attribute

   }
else{

    .... use other
}

特定のケースでは、「アイコン」を使用します

<activity Android:icon="@drawable/iconwhatever"></activity>
0
Cícero Moura