Das ActionBarCompat-Beispiel kann nicht ausgeführt werden
-
12-12-2019 - |
Frage
Ich habe Probleme beim Kompilieren und Ausführen des ActionBarCompat-Beispiels von Android 16.Ich habe API-Level 16 als Build-Ziel ausgewählt, was anscheinend einwandfrei funktioniert, aber wenn ich versuche, Fehler zu beheben, tauchen diese Fehler auf.Natürlich könnte ich die minimale API-Ebene im Manifest ändern, aber welchen Sinn hätte das?Ich habe keine Änderungen am Beispiel vorgenommen. Wie kommt es also, dass es nicht richtig funktioniert?
Class requires API level 14 (current min is 3): android.view.ActionProvider SimpleMenuItem.java /ActionBarCompat/src/com/example/android/actionbarcompat line 129 Android Lint Problem
Class requires API level 14 (current min is 3): android.view.ActionProvider SimpleMenuItem.java /ActionBarCompat/src/com/example/android/actionbarcompat line 134 Android Lint Problem
Class requires API level 14 (current min is 3): android.view.MenuItem.OnActionExpandListener SimpleMenuItem.java /ActionBarCompat/src/com/example/android/actionbarcompat line 155 Android Lint Problem
Ich bin völlig verwirrt, ich wäre für jede Hilfe dankbar.
AKTUALISIEREN:Ich habe die @TargetApi(14)-Annotationen hinzugefügt und dann „Lint suppres newApi“ zu einer der Methoden hinzugefügt, und jetzt scheint es gut zu laufen.Ich bin noch verwirrter.Könnte jemand etwas Licht ins Dunkel bringen, was los ist?
Lösung
Leider werden diese Beispiele nicht für jede SDK-Iteration auf dem neuesten Stand gehalten.
- Als Erstes haben Sie eine Minute festgelegt sdkversion = 3
?Das erscheint mir etwas niedrig.7 (Eclair) ist meiner Meinung nach die Mindestversion, auf die sich die meisten Projekte konzentrieren sollten.Niedrigere Versionen haben einen lächerlichen Marktanteil und dieser wird weiter sinken.
-Dies sind Flusenwarnungen.Lint ist für Android etwas neu und wird daher in diesem Beispiel nicht berücksichtigt.Es informiert Sie über mögliche Probleme in Ihrem Code.Diese Warnung bedeutet, dass Sie eine Klasse der Stufe 14 in einem Code aufrufen, der auf einem Terminal der Stufe 3 ausgeführt werden kann.Sie sollten versuchen, sie mit einem zu entfernen @TargetApi(14)
Anmerkung.Diese Annotation teilt Lint mit, dass Sie wissen, was Sie tun, und dass dieser Code mindestens für SDK-Version=14 ausgeführt wird.
-Wenn Sie die Actionbar mit einer beliebigen Android-Version verwenden möchten, sollten Sie unbedingt die Open-Source-Bibliothek ActionBar Sherlock verwenden.Allerdings Schritt für Schritt :-)
Andere Tipps
In Ihrem Manifest definieren Sie android:minSdkVersion="3"
, dennoch rufen Sie Klassen/Methoden der API-Ebene 14 auf.
Lint prüft diese Art von API-Aufrufen und gibt Ihnen eine Warnung.
Offensichtlich in der ActionBarCompat
Die aktuelle API-Ebene wird überprüft, um sicherzustellen, dass der Aufruf sicher durchgeführt werden kann.
Um die Warnung zu entfernen, fügen Sie einfach hinzu @TargetApi(14)
vor der Methode, mit der Sie den Aufruf tätigen.
Sie müssen das Projekt-Build-Ziel auf API-Stufe 14 ändern. (Projekt-> Eigenschaften -> Android)
Dies sind ihre Anforderungen:
Aufgrund der Verwendung der nativen Aktionsleiste und der damit verbundenen Klassen auf Eiscreme-Sandwich ist die Bibliothek, dass es ist und Ihr Projekt zusammengestellt wirdAndroid 4.0 oder neuer .Das Projekt erfordert auch, dass Sie mit JDK 1.6 sowohl in Ihrem Editor als auch in einem beliebigen Build-Systemen kompilieren, die Sie verwenden können.