webentwicklung-frage-antwort-db.com.de

Benötige ich für ein Minimum SDK = 7 noch "V4 Support Library", wenn ich die neue "V7 Appcompat-Bibliothek" verwende?

Ich migriere von Action Bar Sherlock zu Action Bar Comp. Ich entferne ABS und hatte Support-v4-google-Karten darin. Ich habe Fehler erhalten. Ich werde jetzt die v4 direkt zum Projekt hinzufügen, um zu sehen, ob es gelöst wird, aber ich möchte wissen: 

Ich verstehe nicht wirklich aus der Dokumentation, ob Bibliotheken überflüssig sind oder sich ergänzen? 

Danke für Ratschläge, Hinweise usw.

BEARBEITEN: Dies ist der Fehler, der mich dazu veranlasst hat, v4 mit "externem Glas ..." hinzugefügt zu haben. 

The type Android.support.v4.app.TaskStackBuilder$SupportParentable cannot be resolved. 
It is indirectly referenced from required .class files

Aber wenn Sie sagen, ich sollte nicht v4 hinzufügen, wenn bereits v7, wie erkläre ich es Eclipse?

Relevanter Beitrag war die Lösung, hier v4 hinzuzufügen. Die Hierarchie der Typaktivität ist inkonsistent, wenn ActionBarActivity erweitert wird.

Edit 2: Die v4-jar ist im v7-Bibliotheksprojekt enthalten, wenn Sie die folgenden Schritte Punkt für Punkt ausführen: http://developer.Android.com/tools/support-library/setup.html#add-library . Meine Einrichtung ist: 

  • Android 4.3: nicht aktiviert 
  • Aktivieren Sie Lib: nicht markiert 
  • v7-app .../src: markiert 
  • v7-app .../gen: überprüft 
  • ADependencie: nicht angehakt 
  • rohes V7-Glas: Überprüfen 
  • rohes V4-Glas: Überprüfen
34
Poutrathor

v7 enthält die v4-unterstützungsbibliothek, so dass sie nicht erneut vorhanden sein muss

wenn Sie im Ordner libs der v7-Supportbibliothek nachsehen, werden Sie feststellen, dass die v4-JAR bereits in der Bibliothek referenziert ist

56
tyczj

V7 ist die neue Version der Android-Unterstützungsbibliothek. Dies ist nur etwas Neues, das in V7 der V4-Unterstützungsbibliothek implementiert wurde. Daher sind alle Methoden und Klassen von v4 in v7 verfügbar.

Wenn Sie also eine v7-Bibliothek hinzufügen, müssen Sie keine v4-Bibliothek hinzufügen.

5
Sunil Kumar

Wenn Sie Android Studio verwenden, ist die v7-Supportbibliothek standardmäßig in Maven-Abhängigkeiten enthalten, die in der Datei build.gradle definiert sind.

dependencies {
    compile 'com.Android.support:appcompat-v7:18.0.0'
}

Die .comp-Datei von appcompat-v7 enthält NICHT die v4-Klassen. Sie können dies in Ihrem Build/Exploded-Bundles/ComAndroidSupportAppcompatV71800.aar-Ordner nachlesen. Was ich gefunden habe, ist, dass wenn Sie ein neues Projekt erstellen, es auch die .jar-Datei für v4 aus dem SDK-Ordner enthält.

2
Shaun Kutch

In meinem Fall (Eclipse) hängt es davon ab, welche v4- und v7-JAR Sie in Ihr Projekt importieren.

Mein Vorschlag ist, beide Dateien in diesem Ordner zu verwenden: C:\adt-bundle-windows-x86_64-aaaammgg\sdk\extras\Android\support\v7\appcompat\libs

2
Alecs

In meinem Fall reichte "Android-support-v7-appcompat.jar" allein nicht aus, als ich public class MainActivity extends AppCompatActivity in Eclipse verwendete. Ich musste auch Android-support-v4.jar (Build-Pfad -> Bibliotheken -> JARs hinzufügen) hinzufügen. Nur dann wurde AppCompatActivity akzeptiert.

0
Apostolos