在新版SDK中的支持库中使用API​​时遇到困难

时间:2013-03-08 22:11:33

标签: android android-actionbar

我正在阅读的内容和我将minSDK级别设置为4时发生的错误。我认为当生成新版本的平台时,它会向后兼容与早期版本;因此,如果我在SDK 17中创建软件,使用其功能将在使用早期版本(如4)或其他任何设备的设备上运行。但事实似乎并非如此。自从我购买了运行Android操作系统版本2.3.6的手机后,我想确保我正在开发的软件可以在这个和其他旧设备上运行,以及更新的操作系统。但似乎并不保证向后兼容性。那么,是否只为新设备开发,或者是否有办法确保我在新环境中编写的内容可以在设备上运行而无需跳过一堆箍?我正在尝试使用支持库,但它似乎没有新版本的所有api。可以用某种方式将所需的apis导入支持库吗?如果是这样,你能指点我做一篇关于这样做的文章吗?

我正在尝试创建一个在操作栏中有选项卡的应用程序,同时使用活动和片段,并且我不断遇到版本不匹配错误,说明“最低SDK级别为4,应该是13”。

我很确定我可以让应用程序适用于更新的设备,但我确信所有潜在用户都不会有新手机。所以,我正在寻找你对我所看到的持续问题的见解。

感谢您的见解。

由于

2 个答案:

答案 0 :(得分:3)

  

您会认为,当生成新版本的平台时,它将向后兼容早期版本;因此,如果我在SDK 17中创建软件,使用其功能将适用于使用早期版本(如4或其他)的设备

API级别4中存在的功能通常存在于API级别17中,支持这些功能的代码通常是向后兼容的。

但是,较新版本的Android具有附加功能。这些不一定是向后兼容的,因为根据定义,它们更新和更多。

  

那么,是否只为新设备开发,或者是否有办法确保我在新环境中编写的内容可以在设备上运行而无需跳过一堆箍?

人们当然可以开发适用于旧设备和新设备的应用程序。您刚刚使用的旧设备和新设备上存在的API,通常没有问题。只存在于较新设备上的API,您必须注意不要尝试在旧设备上使用这些功能。有很多种方法可以做到这一点,例如检查Build.VERSION.SDK_INT并在旧设备上跳过较新的API内容。

由于没有“跳过一堆箍”的规范定义,你需要自己决定。它确实需要您能够阅读文档,因为它有很多关于如何构建向后兼容的应用程序,例如this discussion of developing backwards-compatible UIs。还有很多博客文章等涵盖了向后兼容开发的特定方面,可通过您最喜欢的搜索引擎获得。

  

我正在尝试使用支持库,但它似乎没有新版本的所有api

它不应该,也没有被广告宣传。它有一些东西的后退,但不是一切。部分地,这只是工程时间的问题。部分原因是因为有些东西无法向后移植,因为它们是操作系统的核心变化,而不仅仅是框架类。

  

我正在尝试创建一个在操作栏中有选项卡的应用程序,同时使用活动和片段,并且我不断遇到版本不匹配错误,说明“最低SDK级别为4,应该是13”。

正如abbath指出的那样,操作栏不是Android支持包的一部分,尽管ActionBarSherlock填补了该角色。类似的后端可用于Android支持包中没有的其他内容,可以在AndroidViews.net等网站上找到。

答案 1 :(得分:2)

ActionBar不久前推出,这就是为什么你需要API级别13才能使用它。

如果您想使用带有标签的ActionBar,但又想开发更低版本的sdk,请尝试使用兼容性库,例如ActionBarSherlock