Jar Mismatch Es wurden 2 Versionen von android-support-v4.jar in der Abhängigkeitsliste gefunden

130

Ich versuche 2 Versionen einer Android-App zu erstellen (kostenlos / kostenpflichtig). Ich habe eine Android-Bibliothek, die Dateien enthält, die beiden gemeinsam sind. Ich habe ein neues Android-Projekt erstellt und versuche, die Bibliothek zu verwenden, erhalte jedoch den folgenden Fehler:

Found 2 versions of android-support-v4.jar in the dependency list,
but not all the versions are identical (check is based on SHA-1 only at this time).
All versions of the libraries must be the same at this time.
Versions found are:
Path: /Users/Zaheer/Developer/App Free/libs/android-support-v4.jar
    Length: 349252
    SHA-1: 612846c9857077a039b533718f72db3bc041d389
Path: /Users/Zaheer/Developer/App Library/libs/android-support-v4.jar
    Length: 337562
    SHA-1: 27c24d26e4c5d57976e6926367985548678e913c

Irgendwelche Ideen, wie man das löst? Ich habe mit dem Build-Pfad ohne Erfolg gespielt.

Zaheer
quelle
Ich habe eine sehr einfache Lösung gefunden , die in solchen Situationen funktioniert.
Schauen

Antworten:

177

Irgendwelche Ideen, wie man das löst?

Löschen Sie eine.

Ich habe mit dem Build-Pfad ohne Erfolg gespielt.

Schritt 1: Machen Sie das alles rückgängig. Wenn Sie mit dem Erstellungspfad auf R16 oder einer höheren Version des ADT-Plugins für Eclipse herumspielen, machen Sie es falsch.

Schritt 2: Wählen Sie eine dieser beiden Versionen der JAR oder die aus dem Bereich "Extras" Ihrer SDK-Installation.

Schritt 3: Setzen Sie das richtige Glas ein App Library.

Schritt 4: Löschen Sie das von App Free, da es das JAR von aufnimmt App Library.

Sie können stattdessen an beiden Stellen ( App Freeund App Library) dieselbe aktuelle JAR-Datei verwenden , obwohl dies ohne Grund nur zusätzlichen Speicherplatz beansprucht.

CommonsWare
quelle
1
@Necronet: Lassen Sie alle die gleiche JAR verwenden. Kopieren Sie beispielsweise die neueste Version in jedes dieser Projekte.
CommonsWare
@ CommonsWare: Woher wissen, welches das neueste ist?
Mehul Joisar
2
@MehulJoisar: Das liegt an den Autoren des JAR. Im Fall von android-support-v4.jarist der neueste der in Ihrer SDK-Installation.
CommonsWare
5
@MehulJoisar: Das kann ich nicht beantworten. Normalerweise nehme ich das Neueste android-support-v4.jaraus dem SDK und kopiere es in alle Bibliotheksprojekte (plus lösche das aus dem SDK).
CommonsWare
1
Ich hatte gerade dieses Problem, aber es schien völlig aus heiterem Himmel zu kommen, wie es einige andere (schwierigere) Eclipse / Android-Probleme getan haben. Diese Antwort behebt den Effekt, aber anscheinend nicht die Ursache.
Joe Lapp
24
  1. Löschen Sie android-support-v4.jar aus App Free
  2. Fügen Sie dieselbe Datei aus der App-Bibliothek zu App Free hinzu
Lee Chun Hoe
quelle
@ Lee Chun Hoe können Sie mir sagen, wie ich in MAC OS zu diesem Pfad gehen soll. Ich möchte android-support-v4.jar löschen.
Rakesh
@Rakesh Erweitern Sie im Eclipse Package Explorer Ihr Projekt im Ordner libs und löschen Sie die Datei android-support-v4.jar.
Lee Chun Hoe
12

Die oben genannten Lösungen lösen meistens das Problem. Nach Verwendung dieser Lösungen bleibt das Problem bestehen. Dann

Gehen Sie zum Projektordner -> libs-> und löschen Sie "android-support-v4.jar".

Ich hoffe, es würde Ihr Problem lösen, so wie es mein Problem gelöst hat.

Nauman Khalid
quelle
11

Es gibt einige Szenarien, in denen Sie mehrere Bibliotheksprojekte mit den Pfaden android-support-v4.jarin libsund build haben und Ihr Projekt von beiden abhängig ist. Angenommen, ich habe in meinem Fall die folgenden Bibliotheksprojekte in meinem Arbeitsbereich:

  • libfacebook
  • libsherlockactionbar

Beide Projekte sind unabhängig und ich project.propertiessehe wie folgt aus:

# Project target.
target=android-17
android.library.reference.1=../libfacebook
android.library.reference.2=../libsherlockactionbar

Wenn ich mein Projekt erstelle, tritt ein Problem mit der JAR-Nichtübereinstimmung auf, bei dem doppelte Verweise auf zwei Kopien derselben Datei vorhanden sind. Was ich getan habe, um dieses Problem zu lösen, ist ein bisschen trickreich. Ich habe ein neues Bibliotheksprojekt erstellt libcommons, das allen anderen übergeordnet ist Element Bibliotheksprojekte in meinem Arbeitsbereich benannt ist, einschließlich libfacebookund libsherlockactionbar. Dann entfernte ich die Support - Bibliothek von allen anderen Projekten und hielt nur eine Kopie innen libcommons‚s libs Ordner. Dann habe ich libcommonsals Referenz zu allen meinen anderen Bibliotheksprojekten hinzugefügt . Sobald mein Arbeitsbereich gereinigt ist, funktioniert alles wie ein Zauber.

Subin Sebastian
quelle
8

Dies ist eine elegantere Lösung als das Löschen und Hinzufügen von Dateien!

Sie müssen nur:

  1. Klicken Sie mit der rechten Maustaste auf das Projekt App Free
  2. Gehen Sie zu "Android Tools"> "Support-Bibliothek hinzufügen"
  3. Genehmigen Sie die Berechtigungen und lassen Sie die Bibliothek aktualisieren
  4. Wiederholen Sie diesen Vorgang für die Projekt-App-Bibliothek

Die Android Support Library wird dann synchronisiert (:

cokeby190
quelle
Danke - das hat mein Problem gelöst. Ich musste BaseGameUtils hinzufügen und bekam diesen Fehler :)
neowhoru
@neowhoru, kein Problem!
Freut mich
1
froh, dass es @MuhammedRefaat geholfen hat! (:
cokeby190
7

SEHR EINFACHE LÖSUNG

Eine sehr einfache Lösung hat für meinen Fall funktioniert. Kopieren Sie einfach dieselbe JAR-Datei (android-support-v4.jar) in alle Projekte. Es wird keinen Konflikt mehr geben.

1 Kopieren Sie die JAR-Datei android-support-v4.jar aus dem libs-Ordner eines Projekts.

2 Löschen Sie die JAR-Datei android-support-v4.jar aus dem bereits vorhandenen libs-Ordner des zweiten Projekts.

3 Fügen Sie die neu kopierte JAR-Datei des ersten Projekts in den libs-Ordner des zweiten Projekts ein.

Das Problem mit der Nichtübereinstimmung des Glases ist jetzt behoben.

gprathour
quelle
5

Kopieren Sie einfach die Bibliothek von einem der Projekte in das andere. Möglicherweise muss der Zeitstempel für beide gleich sein.

Rafael Sanches
quelle
4

Auflösung:

  1. Klicken Sie mit der rechten Maustaste auf "Kostenloses" Projekt> Android-Tools> Support-Bibliothek hinzufügen.
  2. Machen Sie dasselbe bei 'bezahlten' Projekten.
  3. Reinigen Sie alle Projekte
Erdbeerwein
quelle
2

Überprüfen Sie, ob für Sie irrelevante Projekte offen sind, da dies bei mir der Fall war. Es schien, dass eine der JAR-Dateien mit einem anderen Projekt zusammenhängt, mit dem ich nicht gearbeitet habe. Deshalb habe ich das Projekt einfach geschlossen und eine Bereinigung durchgeführt Build des Projekts, an dem ich arbeite und das Problem nicht mehr hatte! Hoffe das hilft jemandem!

Arturas M.
quelle
1

Verwenden Sie dasselbe Glas, während Sie externe Gläser in Bibliothek und Projekt hinzufügen

Pratik Kanade
quelle
1

gut .. es funktioniert bei mir:

Gehe zu

Projektordner> libs

Löschen Sie dann "android-support-v4.jar".

Dann

Projekt> Reinigen

Es wird klappen!

Erick Guerrero
quelle
1

Ich hatte gerade dieses Problem, aber anstatt das widersprüchliche android-support-v4.jar zu löschen, habe ich es einfach in android-support-v4_PROJECT.jar umbenannt , wodurch der Konflikt beseitigt wurde.

Wenn Sie sich fragen, wie Sie eine Datei in Eclipse umbenennen können, müssen Sie nur die Datei markieren und F2 drücken.

eBehbahani
quelle
0

Sie müssen nur genau die gleiche Prüfsumme für android-support-v4.jar für jedes Ihrer Projekte haben. Dazu können Sie eines davon in alle Ihre widersprüchlichen Projekte / Bibliotheken kopieren / einfügen.

Nichts anderes zu tun, zu reinigen und zu genießen :)

tryp
quelle
0

Möglicherweise öffnen Sie 2 Projekte gleichzeitig (beide mit android-support-v4.jar). I close 1 project and every thing ok

Grauer Wolf
quelle