Secondo Xavier Durochet's explanation on G+, è a causa di una delle librerie che usi con il proprio ic_launcher.png
- che ovviamente non dovrebbero (più su quello in basso).
Le probabilità sono le due icone menzionate nel registro sono diverse: una è la tua e un'altra è probabilmente l'icona Android generica che qualcuno ha dimenticato di rimuovere dalla libreria.
Per vedere la dipendenza incriminato, ha colpito Ctrl + Shift + N
due volte (per i non-progetto di corrispondenza) e digitare ic_launcher.png
(vedere l'ultima riga sullo screenshot)
Per aggirare il problema temporanea, aggiungi il qualificatore -v4
alle tue cartelle drawable drawable (o muovi solo ic_launcher.png
a *dpi-v4
se hai i tuoi motivi) - crediti a Xavier Durochet per la soluzione. È anche possibile rinominare l'icona in qualcosa d'altro e fare la modifica relativa alla AndroidManifest.xml
Il vero problema è che la lib incriminato porta le icone inutili. Le librerie con le proprie risorse (come ActionBarSherlock o la libreria di supporto v7 di Google) utilizzano schemi di denominazione distintivi per evitare conflitti con i nomi delle risorse (abs_
, abc_
).
Le icone di avvio non sono presenti in una libreria, pertanto ti invito a informare l'autore della lib che stai utilizzando che hanno dimenticato di rimuovere i file ridondanti ic_launcher.png
.
Vale anche la pena menzionare, come Barry Carroll notato molto proprio in the same discussion, questo non significa che le risorse non devono mai sovrapporsi quelli nella biblioteca: ci sono un sacco di legit ragioni per ignorare le risorse di un lib con il proprio (ad esempio cambiando l'aspetto di un'attività fornita dalla libreria) e la logica di fusione delle risorse del plugin gradle lo consente, di proposito.
E 'solo che in questo caso particolare, il conflitto si verifica quando la lib è dietro la versione del plug-in Android Gradle (pre-1.2.2) nel qual caso le risorse finiscono in due diverse cartelle *dpi
- con e senza il -v4
qualificatore; ma sono effettivamente nella stessa "risorsa" della risorsa, quindi il sistema li considera duplicati.
Questo glitch fa mettere in evidenza l'inutile ic_launcher.png
di override (in realtà, una collisione - a causa del problema tecnico), ma questa situazione non è universalmente male per altri tipi di risorse.
I.e. a volte si ignora intenzionalmente la risorsa di una lib e questo problema causerà comunque la visualizzazione del messaggio di errore.Questa volta non ci sono problemi con i nomi delle risorse, quindi la soluzione temporanea sopra o trattenere la versione del plugin è la strada da percorrere.
Attualmente l'ultimo plugin gradle stabile è 1.1.3. Usalo. –
Sì, il downgrade a com.android.tools.build:gradle:1.1.3 ha risolto il problema, grazie! –
In breve: è dovuto ai duplicati di 'ic_launcher'. Eliminali - cancella o rinomina –