我可以将targetSdkVersion设置为小于minSdkVersion吗?

时间:2015-08-11 07:33:55

标签: android target-sdk android-min-sdk

我需要Android API级别11的功能,但如果我将targetSdkVersion设置为10,那么我会得到我想要的旧式菜单(使用菜单按钮)。设置这些值是“合法的”,还是targetSdkVersion必须高于或等于minSdkVersion?

(注意:它似乎有效!)

2 个答案:

答案 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