我需要Android API-level 11的特性,但是如果我将targetSdkVersion设置为10,那么我会得到我想要的老式菜单(带有菜单按钮)。设置这些值是否“合法”,或者targetSdkVersion必须大于或等于minSdkVersion?
(注意:它似乎起作用了!)
发布于 2015-08-11 15:49:09
正如document关于android:targetSdkVersion所说的,
一个整数,指定应用程序所针对的
级别。如果未设置,则默认值等于指定给minSdkVersion的值。此属性通知系统您已针对目标版本进行了测试,系统不应启用任何兼容性行为来维护应用程序与目标版本的前向兼容性。该应用程序仍然能够在较旧的版本(下至minSdkVersion)上运行。
在任何情况下,targetSdkVersion都应该始终大于或等于minSdkVersion,因为您的应用程序绝不能在minSdkVersion以下运行。如果你设置的targetSdkVersion小于minSdkVersion,这意味着你告诉安卓系统你已经在targetSdkVersion上测试了这个应用,但这是不可能的(因为你的应用只能在minSdkVersion低的设备上运行)。
因此,矛盾的是,targetSdkVersion应该始终大于等于minSdkVersion。
发布于 2015-08-11 15:57:47
始终使targetSdkVersion大于等于minSdkVersion。
您可以绕过android:targetSdkVersion版本,使用特定接口级别的功能。解决这个问题的最好方法是在运行时以编程方式确定设备版本,并执行特定于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
https://stackoverflow.com/questions/31935803
复制相似问题