Android 我可以将targetSdkVersion设置为小于minSdkVersion吗?
我需要Android API 11级的功能,但如果我将targetSdkVersion设置为10,那么我就会得到我想要的老式菜单(使用菜单按钮)。设置这些值是否“合法”,或者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: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之外发布)