这是否意味着较旧的Android手机无法使用需要最低API级别的应用的应用?
例如,我使用calendar.set()
,它需要API级别24(当前最小值为15);我的测试手机有Android 4.4.4,API级别19.我该怎么办?如果我使用模拟器测试和构建应用程序,我可以在移动设备上使用该应用程序吗?
答案 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系统将阻止用户安装应用程序。您应该始终声明此属性。