Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我可以将targetSdkVersion设置为小于minSdkVersion吗?_Android_Target Sdk_Android Min Sdk - Fatal编程技术网

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

Android 我可以将targetSdkVersion设置为小于minSdkVersion吗?,android,target-sdk,android-min-sdk,Android,Target Sdk,Android Min Sdk,我需要Android API 11级的功能,但如果我将targetSdkVersion设置为10,那么我就会得到我想要的老式菜单(使用菜单按钮)。设置这些值是否“合法”,或者targetSdkVersion是否必须高于或等于minSdkVersion (注意:它似乎有效!)正如关于android:targetSdkVersion所说的那样 指定应用程序目标API级别的整数。如果 未设置,默认值等于给定给minSdkVersion的值。这 属性通知系统您已针对目标进行了测试 版本和系统不应启用任何

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

(注意:它似乎有效!)

正如关于
android:targetSdkVersion
所说的那样

指定应用程序目标API级别的整数。如果 未设置,默认值等于给定给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
}
在这里查看官方文件


minSdkVersion
设置最低兼容API级别,而
targetSdkVersion
设置“使用编译”API级别。Mi建议使用与targetSdkVersion相同或更低版本的最小SDKVersion。如果需要的话,可以添加支持库。但是我已经设置了targetSdkVersion=10和minSdkVersion=11,它可以正常工作。我相信我不能在10上安装它,但我可以在sdk>=11上以10的形式运行它。如果我想禁用当目标sdk>=到某个值时强加的安全限制,该怎么办。。。?我可以将其设置为1,并将最小值设置为必须的值。在什么地方会出现错误吗?还是什么都不会抱怨?(注意:我知道Play Store不允许低于某些值的目标SDK,但它将在Play Store之外发布)