我正在編寫一個應用程序,使用AndroidStudio,目標API 19,但與最小的API 14。我發現,我使用的一些方法可從API 16 +。Android Studio - 如何從比min更高的API中找到方法以及如何處理它們?
AndroidStudio中有沒有一種方法可以找到比當前最小值更高的API可用的所有方法?
我該怎麼處理這種電話?當我將它們更改爲與較低API兼容時,AS告訴我這些方法已被棄用。那麼我能做些什麼來支持舊版本?
我正在編寫一個應用程序,使用AndroidStudio,目標API 19,但與最小的API 14。我發現,我使用的一些方法可從API 16 +。Android Studio - 如何從比min更高的API中找到方法以及如何處理它們?
AndroidStudio中有沒有一種方法可以找到比當前最小值更高的API可用的所有方法?
我該怎麼處理這種電話?當我將它們更改爲與較低API兼容時,AS告訴我這些方法已被棄用。那麼我能做些什麼來支持舊版本?
爲了找到上面最小的SDK API的使用不起毛的API的使用,用這個gradle這個應該是在默認情況下,除非你有:
在你的build.gradlelintOptions {
abortOnError false
}
如果你想使用的API,來自即。 KITKAT爲給定的對象,然後寫這樣的:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT_WATCH) {
obj.kitkatAndAboveApi().
}
如果你想使用一些類從ie。 KITKAT和以上,那麼你將不得不編寫一個包裝類,以避免在加載不可分類時出現異常。這個類將負責加載這個kitkat類,並且只會在kitkat +上被你的應用程序使用。
您有時也可以使用反射查詢方法是否存在,然後調用它。
你也可以看看它是如何完成支持庫,即。爲向後兼容MenuItem
:
一些澄清:
在Android Studio中0.8.9看到unaviable API的所有用途,使用菜單分析 - >檢查代碼。在結果中,您將擁有Android Lint - >'在舊版本中調用新方法'。這是您應該修復錯誤的列表。如果只有當皮棉錯誤的命令行完成
構建就會失敗,即:
$ gradlew建立
且僅當你還沒有加入abortOnError false
。我不知道如何使lint錯誤失敗。
由於Android Studio 0.8.9默認情況下未啓用,因爲我只看到應用程序在手機上崩潰(它在較高的API模擬器上編譯和工作)。至於檢查版本:我應該總是使用它,或者爲舊版和新版apis使用「已棄用」方法(這會留下更少的代碼,而且似乎我爲了兼容性而強制使用已棄用的調用) – 3yakuya 2014-10-18 19:44:07
我添加了一些說明。至於使用不推薦使用的方法,如果您不希望超級乾淨,請使用適用於給定平臺的方法版本。但在此之前閱讀更多關於SO(即http://stackoverflow.com/questions/10164896/is-it-ok-to-have-so-many-deprecated-methods-in-backward-compatible-code) ,一些棄用的警告可以被抑制。 – marcinj 2014-10-18 21:59:32
一切都很清楚,非常感謝。 – 3yakuya 2014-10-18 22:20:20