18

Sto usando android-support-v7-appcompat come libreria nel mio progetto Android. Ora voglio includere actionbarsherlock come un altro progetto di libreria. Quando aggiungo la seconda biblioteca, dà tanti errori come di seguitoerrore: L'attributo "***" è già stato definito quando si utilizzano due progetti di libreria in Android

android-support-v7-appcompat\res\values\attrs.xml:476: error: Attribute "attributeName" has already been defined 

Modificando un valore di attributo ed è codice relativo frammento è una soluzione che ho provato. Ma quando ci sono quasi 80 linee come sopra, diventerà un disastro. C'è un altro modo per risolvere questo problema?

+1

Questa non è la risposta. Ma nel mio caso ho usato sopra entrambe le librerie per ottenere le funzionalità di ActionBar. Così ho rimosso ** android-support-v7-appcompat ** e continuato. – AnujAroshA

risposta

9

Il modo corretto per risolvere questo problema è l'aggiornamento di Librerie di supporto Android in tutti i progetti e progetti di biblioteca pertinenti. Nel mio caso ho utilizzato la libreria di supporto Android e anche uno dei progetti di libreria per implementare la mia applicazione. Quando aggiorno entrambe le librerie, il problema è risolto. Il modo di aggiornare la libreria di supporto Android è;

  • Fare clic destro sul progetto
  • Selezionare Android Tools dalla finestra pop-up
  • Selezionare Aggiungi libreria di supporto
+2

Questo non funziona per me.Sto provando esattamente la stessa cosa di AnujAroshA - usando android-support-v7-appcompat come libreria e ActionBarSherlock. Ho fatto lo stesso errore. Ho aggiornato le librerie di supporto come suggerito (e questo lo sapevo), e poi ho pulito tutti e tre i progetti. Senza fortuna. – marienke

+2

Come posso aggiornare la libreria che sto importando? È solo una "biblioteca" compilativa "dichiarazione". – Tiago

1

Ho risolto questo rimuovendo appcompact da progetto e modifica degli stili su

<style name="AppBaseTheme" parent="Theme.Sherlock"> 
3

rimuovere il progetto libreria di supporto appcompact da Proprietà =>Android

3

Gradle Resource Fusione fonde tutte le cartelle di risorse da tutte le dipendenze e il luogo in un'unica cartella. Nel caso ci siano duplicati il ​​processo di compilazione fallirà.

Fortunatamente, se si guarda sotto Output: etichetta, si troverà la giusta via per il problema.

Ecco un esempio

enter image description here

nel tuo caso è android-support-v7-appcompat\res\values\attrs.xml:476: error: Attribute "attributeName" has already been defined

È anche possibile costruire il vostro progetto dalla riga di comando e ottenere il giusto cammino. attributeName All'interno del file values\attrs.xml nella riga 476 si trova una proprietà denominata "attributeName". Molto probabilmente è il tuo stile personale che devi cambiare per eliminare il duplicato.

Così ora, quando si conosce il motivo, è possibile individuare quella proprietà nel modulo del progetto e sostituirla con un nome diverso.

0

Ho aggiornato la versione degli strumenti di sviluppo e risincronizzato, ha funzionato correttamente.