![](/img/trans.png)
[英]How can I allow lower Android API level users to download my app in a higher API level version?
[英]How do I make sure unsupported (higher level) API is not called in Android?
我正在為我的AndroidManifest.xml構建一個Gingerbread應用程序,並使用minSdkVersion=10
和targetSdkVersion=17
。
我知道在調用之前我應該檢查API是否受支持,例如:
private void removeRule(RelativeLayout.LayoutParams params, int rule) {
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { // API 17
params.removeRule(rule);
} else {
params.addRule(rule, 0);
}
}
但有時我會忘記/或者不知道我正在調用更高級別的API,偶爾會因為NoSuchMethodError
異常而崩潰我的程序。
所以在我發布我的應用程序之前,我總是將我的項目設置為使用Android SDK 2.3.3並確保我沒有進行非法的方法調用(例如,我得到的所有錯誤都包含在檢查android SDK版本的if
語句中),然后將SDK設置回4.2.2。
有沒有更好的方法來確保在不切換SDK的情況下不會調用不支持的API?
(PS我正在使用IntelliJ)
您可以(應該)運行Android Lint來檢查:
右鍵單擊項目(或包,類)>分析>檢查代碼。
在Eclipse Properties - > Android Lint Preferences - > NewApi中,將Severity更改為Error。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.