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

Mic*_*ner 29 xml api android manifest

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

例如:

<uses-sdk
    android:minSdkVersion="9"
    android:targetSdkVersion="20" />
Run Code Online (Sandbox Code Playgroud)

然后用这个:

<activity android:logo="@drawable/iconwhatever"></activity>
Run Code Online (Sandbox Code Playgroud)

"android:logo"属性来自API级别11.

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

Attribute "logo" is only used in API level 11 and higher. (Current min is 9)
Run Code Online (Sandbox Code Playgroud)

任何有关这方面的帮助将不胜感激.

ovm*_*mjm 53

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

来自SDK 文档:

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

  • 这根本不是真的.例如我现在刚刚崩溃,因为我正在使用背景drawable,其中drawable是按钮的涟漪效果.它崩溃了,因为在drawable我有targetApi棒棒糖(v21),但我想在api v19上运行应用程序.它崩溃在android.view.InflateException:二进制XML文件行#10:错误膨胀类<unknown> (3认同)
  • @piggy是因为API 19不支持该属性,还是因为该属性的值恰好不受支持? (2认同)