簡體   English   中英

當調用需要更高的 API,但我的手機具有較低的 API 級別時會發生什么(Android 應用程序)

[英]What happens when a call requires higher API, but my mobile has lower API level (Android app)

這是否意味着較舊的 Android 手機將無法使用調用需要最低 API 級別的應用程序?

例如,我使用的是calendar.set() ,它需要 API 級別 24(當前最小值為 15); 我的測試手機是 Android 4.4.4,API 級別 19。我該怎么辦? 如果我使用模擬器來測試和構建應用程序,完成后我可以在我的手機中使用該應用程序嗎?

當調用需要更高的 API,但我的手機具有較低的 API 級別時會發生什么(Android 應用程序)

您應該在 IDE 中收到有關該問題的警告,如果您進行該調用,則會在運行時崩潰。

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

Calendar上有幾種set()變體,例如這個 自 API 級別 1 以來,所有這些都已存在。

也許您導入了錯誤的Calendar類。

我能做什么?

如果要在 API Level 19 上運行,則需要嘗試使用 API Level 19 或之前定義的類和方法。 對於要在較新設備上使用的可選功能,請使用Build.VERSION.SDK_INT來查看設備正在運行的 API 級別,並圍繞在較舊設備上無法運行的任何內容進行分支。

是的,如果您的應用調用不受支持的方法,它就會崩潰。

您必須創建一個方法來檢查這種情況並以編程方式處理這種情況。

此 SO 顯示了如何獲取版本: 以編程方式在 Android 中獲取設備操作系統版本

您可以在較舊的設備上運行該應用程序,但在遇到不受支持的代碼時它會崩潰。

如果該行運行,它會引發異常。 任何對 API 的調用高於最小值都需要通過版本檢查來保護,並且該功能未在較低的 API 上公開或以不同的方式完成。

是的,兄弟。 它根本不會起作用。 也許它會給你帶來問題。

是的,設備/模擬器的 API 必須至少是Android 文檔中嚴格提到的最低 API(本地 build.gradle 中的 minSdkVersion):

minSdkVersion:一個整數,指定應用程序運行所需的最低 API 級別。 如果系統的 API Level 低於此屬性中指定的值,Android 系統將阻止用戶安裝應用程序。 您應該始終聲明此屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM