我需要Android API级别11的功能,但如果我将targetSdkVersion设置为10,那么我会得到我想要的旧式菜单(使用菜单按钮)。设置这些值是“合法的”,还是targetSdkVersion必须高于或等于minSdkVersion?
(注意:它似乎有效!)
答案 0 :(得分:3)
正如document所说的那样android:targetSdkVersion
,
指定应用程序所针对的API级别的整数。如果 未设置,默认值等于给予minSdkVersion的值。这个 属性通知系统您已针对目标进行了测试 版本和系统不应启用任何兼容性行为 保持应用程序与目标版本的向前兼容性。 该应用程序仍然可以在旧版本上运行(低至 的minSdkVersion)。
在任何情况下,targetSdkVersion
应始终大于或等于minSdkVersion
,因为您的应用无法在minSdkVersion
以下运行。如果您已将targetSdkVersion
小于minSdkVersion
,这意味着您告诉Android系统您已在targetSdkVersion
上测试了此应用,但这是不可能的(因为您的应用可以运行)在设备上仅低至minSdkVersion
)。
因此,矛盾targetSdkVersion
应始终大于等于minSdkVersion
。
答案 1 :(得分:0)
始终使targetSdkVersion
大于等于minSdkVersion
。
您可以绕过android:targetSdkVersion
版本并使用特定API级别的功能。解决该问题的最佳方法是在运行时以编程方式确定设备版本,并选择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