Lint会扫描所有的Android API调用,如果某些调用不被所有的Version(根据minSdk声明决定)支持的话,Lint就会给出警告。
- 如果你确实需要使用该API,并且也不需要对低版本提供支持,那么就可以适当提高build.gradle或者AndroidManifest.xml中的最低版本号(minSdkVersion)。
- 如果你能够确定该API仅仅会在提供支持的版本上被调用,就可以通过 @TargetApi来指明该类或者方法的最低版本。例如 @TargetApi(11),Lint检测中会认为最低版本为11而不是manifest 文件中的minSdk。
- 如果是在样式文件中使用诸如android: attributes的属性,确保将其放入values-vNN文件夹中(NN代表版本号),这样就可以避免在某些设备上会引起冲突,制造商添加的自定义属性可能会和高版本的属性名称一样。同样,你也可以在样式文件中使用 tools:targetApi="11"来指定属性适用的API范围;
如下所示:
<style name="CustomActionBarTheme"
parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="android:actionBarStyle" tools:targetApi="11">@style/MyActionBar</item>
<!-- Support library compatibility -->
<item name="actionBarStyle">@style/MyActionBar</item>
</style>