我們有一個適用於Android的SDK,需要Support Library v4和targetSdk 23(意思是支持庫也應該是23)。由於商業原因,我必須升級SDK,因此即使應用程序編譯爲API 21,它也應該可以工作。如何在運行時檢查Support Library/AppCompat庫版本?
這意味着某些對支持庫的調用應根據當前支持庫版本應用程序(不是當前API級別),所以我這裏有3個選項(按排名最好到最差):
1 - 該方法調用之前檢查支持庫的版本(這是我還沒有想出如何(如果可能的話))。
2 - 使用反射。
3 - 使用Try Catch塊。
因此對於第一個選項,是否可以在運行時檢查支持庫版本?
支持庫不公開任何用於獲取版本信息的API,並且一般來說,不支持您試圖完成的任務。如果您使用的是targetSdk 23,那麼也沒有理由需要使用支持庫的v23。 – alanv
@alanv此代碼適用於SDK,不適用於更改規則的應用程序。如果您有AppCompatV4修訂版21或修訂版23,則應該運行此代碼。有些方法在修訂版21中不可用,因爲它們是在修訂版23中引入的,所以我需要確保代碼運行時避開哪個版本崩潰。 – tomacco