使用API​​级别以外的minSdkVersion属性

时间:2014-10-14 18:15:01

标签: android xml api manifest

我是Android开发的新手,我想知道如果你在API级别大于minSdkVersion的XML标签上使用属性会发生什么。

例如:

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

然后用这个:

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

&#34; android:logo&#34;属性来自API级别11.

在Android Studio中,它会出现以下错误,但我想知道如果不考虑会发生什么:

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

对此有任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:45)

安全地忽略不受支持的属性。

来自SDK documentation

  

解析XML资源时,Android会忽略当前设备不支持的XML属性。因此,您可以安全地使用仅受较新版本支持的XML属性,而不必担心旧版本在遇到该代码时会破坏。

答案 1 :(得分:2)

对于XML属性,可以安全地使用来自较新API的属性(因为XML解析器甚至无法在旧版本中查找它们,所以它们将被忽略)。

答案 2 :(得分:0)

在这种情况下,必须通过代码而不是XML来操纵不同API的属性。

在代码中,您可以对其进行处理。

例如:

 if(Build.Version.SDK_INT > 10){

     .... use an attribute

   }
else{

    .... use other
}

针对您的具体情况,请使用&#34; icon&#34;

<activity android:icon="@drawable/iconwhatever"></activity>