Ich fange gerade an, Android-Entwicklung zu machen, mehr oder weniger nach dem Ссылка Tutorial, und eine Sache nervt mich immer wieder: Ich habe zwei Klassen, die beide mithilfe des Erstellungsassistenten "Android Activity" erstellt wurden:
%Vor%und
%Vor%Eclipse hat mir immer wieder folgende Fehler gemeldet:
Aufruf erfordert API-Level 11 (aktuell mindestens 8): android.app.Activity # getActionBar
Call erfordert API Level 11 (aktuell min ist 8): android.app.ActionBar # setDisplayHomeAsUpEnabled
bis ich eins der Zeilen auskommentiert habe (wie oben gezeigt). Jetzt scheint die Anwendung zu kompilieren und auf meinem Android-Gerät zu laufen ohne Fehler. (Nun, zumindest ohne das Fehler).
Also:
getActionBar().setDisplayHomeAsUpEnabled(true);
diesen Fehler in einer Klasse an, aber diese exakt gleiche Zeile ist kein Fehler - nicht einmal eine Warnung - in der anderen Klasse? getActionBar().setDisplayHomeAsUpEnabled(true);
-Anweisung in einer Aktivität falsch, aber in der anderen völlig in Ordnung? Verwenden Sie getSupportActionBar()
anstelle von getActionBar()
. Dadurch werden Funktionen ActionBar auf API-Levels unter 11 bereitgestellt.
Kurz gesagt, die Aktionsleiste ist in älteren Android-Versionen nicht verfügbar, und auch die Google-Supportbibliothek bietet diese Funktion nicht. Dies ist der Grund, warum sich lint beschweren - Sie verwenden Code, der nicht in API verison 8 existiert, der als eine minimale API-Ebene festgelegt ist, die Ihre App unterstützt. Wenn Sie die Aktionsleiste für ältere Android-Versionen verwenden möchten, verwenden Sie die Open-Source-Bibliothek "Action Bar Sherlock".
Nun, um Ihre Fragen zu beantworten
Wenn Sie appcompat-v7 und höher verwenden, können Sie actionbarsherlock nicht verwenden, da beide dieselben Attribute definiert haben. Diese Bibliotheken haben also einen Ressourcenkonflikt.
Um es mit Support-Bibliothek zu tun, benötigen Sie: (Ich hoffe, Sie haben bereits die Support-Bibliothek heruntergeladen und in Ihr Projekt integriert)
Importe:
%Vor%Aktivität:
%Vor%Damit können Sie die ActionBar-Implementierung von Activity, die von älteren Versionen unterstützt wird, erhalten:
%Vor%schreibe Code & amp; habe Spaß!
Bearbeiten Sie einfach die zweite Datei und speichern Sie sie. Es wird einen Fehler geben!
%Vor%Kann sein
%Vor%im gegebenen Kontext falsch
%Vor% Sie müssen minSDK
ändern. Ich denke, keine andere Option. Wenn Sie Functions
API 11 verwenden möchten
Problem ist, wenn Sie eine Android-App in eclipse erstellen, haben Sie gefragt, min und max api Unterstützung auswählen und standardmäßig eclips wählen Sie 8 als min und 19 als max, wenn Sie oben genannten Fehler bedeutet, dass die Funktion, die Sie verwenden, ist Version, die ist größer als 8
Um dieses Problem zu beheben, gehe ich einfach in die Datei AndroidManifest.xml und ändere folgendes:
minsdkversion ist standardmäßig 8