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?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top