当呼叫需要更高的API时会发生什么,但我的移动设备的API级别较低(Android应用)

时间:2017-06-14 18:38:45

标签: java android api

这是否意味着较旧的Android手机无法使用需要最低API级别的应用的应用?

例如,我使用calendar.set(),它需要API级别24(当前最小值为15);我的测试手机有Android 4.4.4,API级别19.我该怎么办?如果我使用模拟器测试和构建应用程序,我可以在移动设备上使用该应用程序吗?

5 个答案:

答案 0 :(得分:2)

  

当呼叫需要更高的API时会发生什么,但我的手机的API级别较低(Android应用)

您应该在IDE中收到有关此问题的警告,如果您拨打该电话,您将在运行时崩溃。

  

我使用的是calendar.set(),它需要API级别24

set()上有Calendar的多种变体,例如this one。自API级别1以来,所有这些都已存在。

也许您导入了错误的Calendar类。

  

我该怎么办?

如果要在API级别19上运行,则需要尝试使用API​​级别19或之前定义的类和方法。对于要在较新设备上使用的可选功能,请使用Build.VERSION.SDK_INT查看设备正在运行的API级别,并分支在旧设备上无效的任何内容。

答案 1 :(得分:0)

是的,如果调用不支持的方法,您的应用会崩溃。

您必须创建一个方法来检查此情况并以编程方式处理此问题。

此SO显示如何获取版本:Getting device os version in Android programmatically

您可以在较旧的设备上运行该应用,但遇到不支持的代码时,该应用会崩溃。

答案 2 :(得分:0)

如果运行该行,则抛出异常。任何高于最低API的API调用都需要通过版本检查来保护,并且该功能不会在较低的API上公开或以不同的方式完成。

答案 3 :(得分:0)

是的兄弟我不会工作所有可能会导致你的问题

答案 4 :(得分:0)

是的,设备/模拟器的API必须至少是Android docs中严格提到的最小API(本地build.gradle中的minSdkVersion):

  

minSdkVersion:一个整数,指定运行应用程序所需的最低API级别。如果系统的API级别低于此属性中指定的值,则Android系统将阻止用户安装应用程序。您应该始终声明此属性。