如果minSdkVersion低于targetSdkVersion,会发生什么情况?

问题描述:

我收到警告:如果minSdkVersion低于targetSdkVersion,会发生什么情况?

Attribute minSdkVersion (3) is lower than the project target API level (8) 

这将如何影响我的应用程序?

+0

在Android清单的SDK元素是很奇怪的。从名字开始。他们并不意味着他们说什么......它与SDK和API无关。而且这个信息本身也击败了minSdkVersion的目的。 – gcb 2011-02-24 09:44:08

您可以放心地忽略该警告。

这是一个奇怪的警告 - 这意味着您正在使用API​​级别8(Android 2.2/Froyo)的工具,但是针对API级别3(Android 1.5/Cupcake)。除非你使用SDK来定位它正好符合的Android版本,否则该警告总是会出现 - 在这种情况下,您将不得不使用当前的SDK来定位Android 2.2。

+34

它_does_意味着你最好做大量的测试。由于您正在针对目标API进行编译,因此不能保证所引用的所有类和方法都会出现在“minSdkVersion”要求您支持的较早API中。您有责任确保不使用任何这些较新的接口,或者如果它们不存在,则优雅地失败。 – beekeeper 2010-10-12 03:54:59

+0

如果我不在清单中使用此行,会发生什么情况? – 2012-01-06 09:48:32

我将我的大部分开发工作都设置为minSdkVersion级别。这几乎可以保证我没有使用任何更新的API。然后在发布应用程序之前切换到我的targetSdkVersion级别。到目前为止我遇到的唯一问题是较低的级别不支持我需要在生产中使用的一些清单语法。 (例如,级别3不支持targetSdkVersion。)我只是在切换到更高级别之后修复了清单。

+0

我喜欢这种方法。 – DonnaLea 2011-08-22 23:45:17

+0

这是一个有趣的技术。你意识到没关系,并且对你的用户有益,可以使用比'minSdkVersion'更新(因此不存在于其中)的API?这样,拥有比minSdkVersion更先进的操作系统的用户可以在您的应用中享受更多的现代功能,而运行minSdkVersion的古老用户仍然可以使用您的应用。您只需要注意向后兼容性,因为@beekeper在接受的答案中留言。 – Jeffro 2012-12-18 01:52:07

+0

@Jeffro - 是的,我知道这一点,谢谢。我也知道[Adam Powell的博客文章]中描述的延迟加载和相关技术(http://android-developers.blogspot.com/2010/07/how-to-have-your-cupcake-and-eat - 它-too.html)。我仍然喜欢编程到我打算支持的最低级别的API,并且只有在应用程序真正需要时才使用后续功能。 – 2012-12-18 02:11:05