ich für Lebkuchen Erstellen einer Anwendung und oben mit minSdkVersion=10
und targetSdkVersion=17
in meinem AndroidManifest.xml.Wie stelle ich sicher, dass eine nicht unterstützte (höhere) API in Android nicht aufgerufen wird?
Ich weiß, dass ich überprüfen sollten, wenn die API unterstützt wird, bevor ich es nennen, zum Beispiel:
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);
}
}
Aber manchmal vergesse ich/oder nicht wissen, ich bin ein höheres Level-API aufrufen und gelegentlich Crash mein Programm mit NoSuchMethodError
Ausnahme.
Also, bevor ich meine App veröffentlichen, habe ich immer mein Projekt Android SDK 2.3.3 zu verwenden und stellen Sie sicher, ich mache nicht illegal Methodenaufrufe (zB alle Fehler, die ich in einer if
Anweisung Überprüfung der Android gewickelt bekommen SDK-Version) und setzen Sie das SDK dann wieder auf 4.2.2.
Gibt es einen besseren Weg, um sicherzustellen, dass die nicht unterstützte API nicht aufgerufen wird, ohne das SDK zu wechseln?
(P. S. Ich benutze IntelliJ)
Die richtige Antwort ist "Use Lint" (http://developer.android.com/tools/debugging/improving-w-lint.html), da es Ihnen sagen wird, wenn Sie etwas neuer als Ihre 'android: minSdkVersion verwenden ', aber ich bin mir nicht sicher, ob es dafür noch eine IntelliJ-Integration gibt. Wenn nicht, müssten Sie es über die Befehlszeile ausführen. – CommonsWare