Jar Mismatch Trovate 2 versioni di android-support-v4.jar nell'elenco delle dipendenze


130

Sto cercando di creare 2 versioni di un'app Android (gratuita / a pagamento). Ho una libreria Android che contiene file comuni a entrambi. Ho creato un nuovo progetto Android e sto provando a utilizzare la libreria ma visualizzo l'errore di seguito:

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

Qualche idea su come risolverlo? Ho giocato con il percorso di costruzione senza successo.


Ho trovato una soluzione molto semplice che funziona in tali situazioni, controlla la mia risposta di seguito
gprathour

Risposte:


177

Qualche idea su come risolverlo?

Elimina uno.

Ho giocato con il percorso di costruzione senza successo.

Passaggio n. 1: annulla tutto. Se stai scherzando con il percorso di compilazione, su R16 o versione successiva del plug-in ADT per Eclipse, stai sbagliando.

Passaggio 2: selezionare una di quelle due versioni del JAR oppure selezionare quella dall'area "extra" dell'installazione dell'SDK.

Passaggio 3: inserire il JAR giusto App Library.

Step # 4: Elimina quello da App Free, poiché prenderà quel JAR da App Library.

Puoi invece avere lo stesso file JAR effettivo in entrambi gli spot ( App Freee App Library), sebbene occupi spazio extra senza motivo.


1
@Necronet: hanno tutti usato lo stesso JAR. Ad esempio, copia l'ultimo in ciascuno di quei progetti.
Commons War

@CommonsWare: come sapere quale è l'ultima?
Mehul Joisar,

2
@MehulJoisar: Dipende dagli autori del JAR. Nel caso di android-support-v4.jar, l'ultimo è quello nell'installazione dell'SDK.
CommonsWare,

5
@MehulJoisar: non posso rispondere. Di solito prendo l'ultimo android-support-v4.jardall'SDK e lo copio in tutti i progetti di libreria (oltre a eliminare quello dall'SDK).
CommonsWare,

1
Ho appena avuto questo problema, ma sembrava uscire completamente dal nulla, come molti altri (più difficili) problemi di Eclipse / Android. Questa risposta risolve l'effetto ma apparentemente non la causa.
Joe Lapp,

24
  1. Elimina android-support-v4.jar da App gratuita
  2. Aggiungi lo stesso file dalla Libreria app in App gratuita

@Lee Chun Hoe, puoi dirmi come seguire questo percorso in MAC OS. Voglio eliminare android-support-v4.jar.
Rakesh,

@Rakesh In Eclipse Package Explorer, espandi il tuo progetto, nella cartella libs, elimina quel file android-support-v4.jar.
Lee Chun Hoe,

12

Le soluzioni di cui sopra risolvono principalmente il problema. dopo aver usato queste soluzioni e il problema persiste. Poi

VAI alla cartella del progetto -> libs-> ed elimina "android-support-v4.jar"

Spero che risolva il tuo problema mentre risolve il mio problema.


11

Ci sono alcuni scenari in cui si dispone di più progetti di libreria con il la android-support-v4.jara loro libse costruire percorsi e il progetto ha una dipendenza verso entrambi. Ad esempio, nel mio caso, ho i seguenti progetti di libreria nel mio spazio di lavoro,

  • libfacebook
  • libsherlockactionbar

Entrambi questi progetti sono indipendenti e il mio project.propertiesaspetto è il seguente,

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

Quando creo il mio progetto, ottengo un problema di mancata corrispondenza del vaso con riferimenti duplicati a due copie dello stesso file. Quello che ho fatto per risolvere questo problema è un po 'ingannevole. Ho creato un nuovo progetto di libreria chiamato libcommonscome genitore di tutti gli altri progetti di libreria nel mio spazio di lavoro, inclusi libfacebooke libsherlockactionbar. Poi ho tolto la libreria di supporto da tutti gli altri progetti e continuai solo una copia all'interno di libcommons's librerie cartella. Quindi ho aggiunto libcommonscome riferimento a tutti i miei altri progetti di biblioteca. Una volta pulito il mio spazio di lavoro, tutto funziona come un fascino.


8

Questa è una soluzione più elegante rispetto all'eliminazione e all'aggiunta di file!

Hai solo bisogno di:

  1. Fare clic con il tasto destro del mouse sull'app del progetto gratuita
  2. Vai a "Strumenti Android"> "Aggiungi libreria di supporto"
  3. Approvare le autorizzazioni e lasciarlo aggiornare la libreria
  4. Ripetere questo processo per la libreria app del progetto

La libreria di supporto Android sarà quindi sincronizzata (:


Grazie - questo ha risolto il mio problema. Ho dovuto aggiungere BaseGameUtils e ho ricevuto questo errore :)
neowhoru,

@neowhoru, nessun problema! Sono contento di condividere! ~
cokeby190,

1
felice che abbia aiutato @MuhammedRefaat! (:
cokeby190,

7

SOLUZIONE MOLTO SEMPLICE

Una soluzione molto semplice ha funzionato per il mio caso, basta copiare lo stesso file jar (android-support-v4.jar) in tutti i progetti. Non ci saranno più conflitti.

1 Copia il file jar android-support-v4.jar dalla cartella libs di ogni singolo progetto.

2 Elimina il file jar android-support-v4.jar dalla cartella libs del secondo progetto che è già esistente.

3 Incollare il file jar del nuovo progetto appena copiato nella cartella libs del secondo progetto.

Ormai il problema di mancata corrispondenza del vaso verrà risolto.


5

Basta copiare la libreria da uno dei progetti all'altro. Forse il timestamp deve essere lo stesso su entrambi.


4

Risoluzione:

  1. Fare clic con il tasto destro del mouse sul progetto "gratuito"> Strumenti Android> Aggiungi libreria di supporto.
  2. Fai la stessa cosa sul progetto "pagato".
  3. Pulisci tutti i progetti

2

Controlla se ci sono progetti irrilevanti aperti per te, perché era il caso per me, sembrava che uno dei file JAR fosse correlato a un altro progetto, con il quale non stavo lavorando, quindi ho appena chiuso quel progetto, ho fatto una pulizia build del progetto a cui sto lavorando e non ho più avuto il problema! Spero che questo aiuti qualcuno!


1

Usa lo stesso barattolo mentre aggiungi vasetti esterni sia nella libreria che nel progetto


1

bene .. funziona per me:

Vai a

Cartella del progetto> libs

quindi, elimina "android-support-v4.jar"

Poi

progetto> Pulisci

Funzionerà!


1

Ho appena avuto questo problema, ma invece di eliminare il conflitto tra android-support-v4.jar l' ho appena rinominato in android-support-v4_PROJECT.jar , che ha rimosso il conflitto.

Se ti stai chiedendo come rinominare un file in Eclipse, devi solo evidenziare il file e premere F2.


0

Devi solo avere esattamente lo stesso checksum android-support-v4.jar su ciascuno dei tuoi progetti. Per questo, puoi copiarne / incollarne uno in tutti i tuoi progetti / librerie in conflitto.

Nient'altro da fare, pulire e divertirsi :)


0

Magari apri 2 progetti contemporaneamente (entrambi usando android-support-v4.jar). I close 1 project and every thing ok

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.