我需要使用Android API 11的功能,但是如果我将targetSdkVersion设置为10,则可以获得我想要的旧式菜单(带有菜单按钮)。这些值是否可以设置为“合法”,还是targetSdkVersion必须高于或等于minSdkVersion?
(注意:看起来它可以工作!)
(注意:看起来它可以工作!)
android:targetSdkVersion
是一个整数,用于指定应用程序的目标API级别。如果未设置,则默认值等于minSdkVersion。该属性通知系统,您已针对目标版本进行了测试,因此系统不应启用任何兼容性行为,以保持您的应用程序与目标版本的向前兼容性。应用程序仍然能够在较旧的版本上运行(最低至minSdkVersion)。
无论如何,targetSdkVersion
始终应大于或等于minSdkVersion
,因为您的应用程序不能在minSdkVersion
以下运行。如果将targetSdkVersion
设为小于minSdkVersion
,则表示您正在告诉Android系统,您已在targetSdkVersion
上测试此应用程序,但这是不可能的(因为您的应用程序只能在最低为minSdkVersion
的设备上运行)。
因此,由矛盾可知,targetSdkVersion
应始终大于等于minSdkVersion
。
始终使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
minSdkVersion
设置最低兼容 API 级别,而targetSdkVersion
设置“编译使用”的 API 级别。我的建议是将minSdkVersion
设置为与targetSdkVersion
相同或更低的版本。如果需要,添加支持库。 - Phantômaxx