Erro no ícone do Android studio Gradle, Manifest Merger


141

Continuo vendo essa mensagem e não sei como resolvê-la para sempre.

Error:(43, 9) Attribute application@icon value=(@drawable/new_app_icon) from AndroidManifest.xml:43:9
    is also present at com.github.erizet.signala:signala-longpolling:0.20:7:18 value=(@drawable/ic_launcher)
    Suggestion: add 'tools:replace="android:icon"' to <application> element at AndroidManifest.xml:40:5 to override
:OpenBook:processDebugManifest FAILED
Error:Execution failed for task ':OpenBook:processDebugManifest'.
> Manifest merger failed with multiple errors, see logs

Tentei adicionar android:replace="android:icon"ao meu manifesto mesmo com o meu ícone.

Eu tentei excluir o android:icon="@drawable/ic_launcherda biblioteca, mas ele continua voltando quando eu construo porque é importado do maven

Alguma ideia ?


Esse problema ocorre quando o problema nas tags de arquivo de manifesto. Por favor, verifique a resposta stackoverflow.com/a/39509659/2732632
Kimmi Dhingra

Eu enfrentei o mesmo problema quando adicionei permissões duplicadas no manifesto.
Cloy

Respostas:


342

Parece ser a falha da principal ferramenta de fusão para gradle.

http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger

Resolvi adicionando à minha tag de manifesto xmlns:tools="http://schemas.android.com/tools"

Em seguida, adicionado tools:replace="android:icon,android:theme"à tag do aplicativo

Isso diz à fusão para usar meu ícone e tema de manifesto e não de outras bibliotecas

Espero que ajude obrigado


6
O problema ainda persiste para mim. Trabalhando no Android Studio 1.1.
Bolling

1
Obrigado! Trabalhou para mim
Sandeep

4
Versões mais recentes do android 2.0. não está funcionando. Quem respondeu deve atualizar este Q, se ele quis dizer salvar gerações, será inútil em breve #
Karue Benson Karue

3
Studio 2.2 a partir de hoje todos com isso e nt trabalhar esta questão
Prasad

2
não funciona no Android Studio 2.2 com gradle 2.2.0.
DysaniazzZ

54

Eu tenho o mesmo problema, eu corrijo assim adicionando xmlns:tools="http://schemas.android.com/tools"ao topo do arquivo mainfest e adiciono tools:replace="android:icon"a aparência

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"  // add tools line here 
    package="yourpackage">


    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        tools:replace="android:icon"> ///add this line 

.....

</application>

</manifest>

1
não está funcionando para o Android Studio 2.2 e o gradle 2.2.0.
DysaniazzZ

resposta brilhante
Gundu Bandgar 23/09

10

Eu tenho o mesmo erro, apenas este código resolve meu problema, quero compartilhar com você:

em Manifest.xml:

  • adicione este código no topo do seu arquivo xml:

    xmlns:tools="http://schemas.android.com/tools"

  • Em seguida, acrescentou:

    tools:replace="android:icon,android:theme,android:label,android:name" para a tag do aplicativo


@DysaniazzZ, não depende do Android Studio. veja o log de mensagens.
Adnan Abdollah Zaki -

Ok, eu vou ver.
DysaniazzZ

@ Por outro lado, verifique o seu log de mensagens, acho que não depende do android studio.
Adnan Abdollah Zaki

@ adnan9011, meu problema era ter permissões duplicadas no arquivo de manifesto.
Darush

9

A resposta de shimi_tap é suficiente. O que deve ser lembrado é que escolher apenas o que você precisa. Escolha entre {ícone, nome, tema, rótulo}. Eu adicionei tools:replace="android:icon,android:theme", não funciona. Eu adicionei tools:replace="android:icon,android:theme,android:label,android:name", não funciona. Funciona quando adicionei tools:replace="android:icon,android:theme,android:label". Portanto, descubra qual é exatamente o conflito em seus arquivos de manifesto.


1
não está funcionando para o Android Studio 2.2 e o gradle 2.2.0.
DysaniazzZ

5

Basta adicionar xmlns:tools="http://schemas.android.com/tools"à sua tag de manifesto e precisar adicionar tools:replace="android:icon" antes android:icon="@mipmap/ic_launcher" .


3

Este erro também ocorre quando o minSdk do seu aplicativo é superior ao minSdk de qualquer biblioteca.

app's minSdk >= libraries minSdk

1
Então qual é a solução?
itzhar #

2

OBTEVE A SOLUÇÃO APÓS MUITO TEMPO

basta pegar o ic_launcher e colá-lo na pasta drawables,

Vá para o seu manifesto e mude o android: icon = "@ drawable / ic_launcher"

Limpe seu projeto e reconstrua

Espero que ajude você


2

Eu tive esse problema ao alterar o ícone do drawable para o mipmap.

Eu só perdi a linha

tools:replace="android:icon"

no manifesto.


1

Por alguma razão, o android studio não gosta de chamar o ícone do aplicativo da pasta drawable. Então, nesse caso, criei o diretório de recursos mipmap na pasta res.

Clique com o botão direito do mouse na pasta res> novo> diretório de recursos do Android> tipo de recurso: mipmap e agora solte qualquer ícone lá e faça referência a ele no arquivo de manifesto. Compartilhar isso, já que esse método funcionou para mim.

android: icon: @ drawable / ic_launcher "

para

android: icon = "@ mipmap / ic_launcher"


para mim, definir o estilo parecia melhor, android:theme="@style/AppTheme" consulte -> gist.github.com/CrandellWS/4d284b11b5bca3054bddf8f511e49ae9
CrandellWS

1

Se nada disso funcionar, feche o Android Studio. Acesse app / src / main, abra o arquivo AndroidManifest.xml em um editor de texto (como sublime), remova / substitua as linhas de erros, salve e reabra o android studio.


1

Quando um valor de atributo contém um espaço reservado (veja o formato abaixo), a fusão de manifesto trocará esse valor por um valor injetado. Os valores injetados são especificados no build.gradle. A sintaxe para os valores dos espaços reservados é $ {name}, pois @ é reservado para links. Após a última fusão do arquivo, e antes que o arquivo de manifesto android mesclado resultante seja gravado, todos os valores com um espaço reservado serão trocados pelos valores injetados. Uma quebra de construção será gerada se um nome de variável for desconhecido.

de http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger#TOC-Build-error


0

A resposta de Shimi_tap é o caminho certo para corrigir o problema. Se você deseja usar a ferramenta de fusão antiga, pode adicioná-la ao arquivo build.gradle

android {useOldManifestMerger true}


2
"Em 1,0, removemos a capacidade de invocar o velho fusão manifesto ..." Tools.android.com/tech-docs/new-build-system/user-guide/...
devgrg

Não foi possível encontrar o método useOldManifestMerger () para argumentos [true] no projeto ': app' do tipo org.gradle.api.Project.
DysaniazzZ

0

Para mim, esse problema ocorreu após a atualização do Google Play Services. Uma das bibliotecas que eu estava usando incorporou essa biblioteca usando o "+" em sua referência gradel, como

compile 'com.google.android.gms:play-services:+'

Isso criou um problema porque a versão mínima segmentada por essa biblioteca era menor do que a versão atual do Google Play Services. Eu encontrei isso simplesmente olhando nos logs.


0

Na sua .gradlemodificação MinSDK, por exemplo:

  • build.gradle (Módulo: aplicativo)
    • antes: minSdkVersion 9
    • depois de: minSdkVersion 14

etc.


0

Eu tentei toda a solução mencionada acima

em Manifest.xml:

  • adicione este código na parte superior do arquivo xml na tag manifest:

    xmlns:tools="http://schemas.android.com/tools"

  • Em seguida, acrescentou:

    tools:replace="android:icon,android:theme,android:label,android:name" para a tag do aplicativo

mas nada disso funcionou. Eu precisava excluir um arquivo xml que estava situado em

mipmap-anydpi-v26 / ic_launcher_round.xml

Eu estava testando o aplicativo em

Samsung Galaxy 8 com OS versão 8.0.0

é realmente uma solução?


0

No arquivo AndroidManifest.xml, adicione o seguinte ao applicationnó:

tools:replace="android:appComponentFactory,android:icon,android:theme,android:label,android:name"
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.