Android Studio Gradleアイコンエラー、マニフェストマージ


141

私はこのメッセージを見続けていますが、それを完全に解決する方法がわかりません。

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

android:replace="android:icon"私のアイコンでもマニフェストに追加しようとしました。

android:icon="@drawable/ic_launcherライブラリからを削除してみ ましたが、mavenからインポートされているため、ビルド時に戻ってきます

何か案は ?


この問題は、マニフェストファイルのタグに問題がある場合に発生します。回答を確認してくださいstackoverflow.com/a/39509659/2732632
Kimmi Dhingra

マニフェストに重複するアクセス許可を追加すると、同じ問題に直面しました。
Cloy

回答:


342

それは、gradleのメインフェストMergerツールのせいです。

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

私のマニフェストタグに追加することで解決しました xmlns:tools="http://schemas.android.com/tools"

次にtools:replace="android:icon,android:theme"、アプリケーションタグに追加されます

これは、他のライブラリではなく、マニフェストアイコンとテーマを使用するように合併に指示します

ありがとうございます


6
問題はまだ解決しません。Android Studio 1.1での作業。
2015

1
ありがとう!私のために働いた
Sandeep

4
Android 2.0の最新バージョン。機能していません。誰でも答えは、彼が他の世代を保存するものであれば、それは無用、すぐになります。このQを更新する必要があります
KarueベンソンKarue

3
今日からStudio 2.2はすべてこの問題を抱えており、この問題を解決
Prasad

2
Android Studio 2.2 for gradle 2.2.0で動作しません。
DysaniazzZ 2016年

54

私は同じ問題xmlns:tools="http://schemas.android.com/tools"を抱えています、mainfestファイルの先頭に追加してこのように修正し、次のように追加tools:replace="android:icon"します

<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
Android Studio 2.2およびgradle 2.2.0では機能しません。
DysaniazzZ 2016年

素晴らしい答え
Gundu Bandgar

10

私は同じエラーがあります、このコードだけで問題が解決します。あなたと共有したいと思います:

Manifest.xml

  • このコードをxmlファイルの先頭に追加します。

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

  • 次に追加されました:

    tools:replace="android:icon,android:theme,android:label,android:name" アプリケーションタグに


@DysaniazzZ、Android Studioに依存しません。メッセージログを参照してください。
Adnan Abdollah Zaki 2016年

わかりました。
DysaniazzZ 2016年

@ファンワイズ、あなたのメッセージログをチェックしてください、それはアンドロイドスタジオに依存していないと思います。
Adnan Abdollah Zaki 2017年

@ adnan9011、私の問題はマニフェストファイルで重複した権限を持っていることでした。
Darush

9

shimi_tapの答えで十分です。覚えておくべきことは、必要なものだけを選択することです。{アイコン、名前、テーマ、ラベル}から選択します。私は追加しましたtools:replace="android:icon,android:theme"、それは動作しません。私は追加しましたtools:replace="android:icon,android:theme,android:label,android:name"、それは動作しません。追加しtools:replace="android:icon,android:theme,android:label"たときに動作します。したがって、マニフェストファイルに正確にどのような競合があるかを調べてください。


1
Android Studio 2.2およびgradle 2.2.0では機能しません。
DysaniazzZ 2016年

5

xmlns:tools="http://schemas.android.com/tools"マニフェストタグに追加するだけで、のtools:replace="android:icon" に追加する必要がありますandroid:icon="@mipmap/ic_launcher"



2

時間が経つとすぐに解決する

ic_launcherを取得して、それをdrawablesフォルダーに貼り付けます。

マニフェストに移動し、android:icon = "@ drawable / ic_launcher"変更します

プロジェクトをクリーンアップして再構築する

お役に立てば幸い


2

アイコンを描画可能からミップマップに変更するときにこの問題が発生しました。

行を逃しただけ

tools:replace="android:icon"

マニフェストで。


1

何らかの理由で、Android Studioは、ドローアブルフォルダーからアプリアイコンを呼び出すことを好みません。したがって、その場合はresフォルダの下にmipmapリソースディレクトリを作成しました。

resフォルダーを右クリック>新規> Androidリソースディレクトリ>リソースタイプ:mipmapにアイコンをドロップし、そこにアイコンをドロップして、マニフェストファイルに参照します。この方法が私のために働いたので、これを共有します。

android:icon:@ drawable / ic_launcher "

android:icon = "@ mipmap / ic_launcher"


私はスタイルを設定するための最良のは見えたandroid:theme="@style/AppTheme" 参照- > gist.github.com/CrandellWS/4d284b11b5bca3054bddf8f511e49ae9
CrandellWS

1

それでもうまくいかない場合は、Android Studioを閉じます。app / src / mainに移動し、テキストエディター(sublimeなど)でAndroidManifest.xmlファイルを開き、erros行を削除/置換し、android studioを保存して再度開きます。


1

属性値にプレースホルダーが含まれている場合(以下のフォーマットを参照)、マニフェストマージはこのプレースホルダー値を注入された値と交換します。注入された値はbuild.gradleで指定されます。@はリンク用に予約されているため、プレースホルダー値の構文は$ {name}です。最後のファイルのマージが発生した後、結果としてマージされたAndroidマニフェストファイルが書き出される前に、プレースホルダーを持つすべての値が注入された値と入れ替わります。変数名が不明な場合、ビルドが破損します。

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


0

Shimi_tapの答えは問題を修正する正しい方法です。古いマージツールを使用する場合は、これをbuild.gradleファイルに追加できます

android {useOldManifestMerger true}


2
「1.0では、我々は古いマニフェスト合併を起動する機能を削除..」tools.android.com/tech-docs/new-build-system/user-guide/...
devgrg

タイプorg.gradle.api.Projectのプロジェクト ':app'の引数[true]に対するメソッドuseOldManifestMerger()が見つかりませんでした。
DysaniazzZ 2016年

0

私にとって、この問題はGoogle Play開発者サービスを更新した後に発生しました。私が使用していたライブラリの1つは、次のように、gradle参照に「+」を使用してこのライブラリを組み込んだ

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

そのライブラリが対象とする最小バージョンが、Google Play開発者サービスの現在のバージョンが対象とするバージョンよりも小さいため、これにより問題が発生しました。私は単にログを見るだけでこれを見つけました。


0

あなたに.gradle変更MinSDK、例えば:

  • build.gradle (モジュール:アプリ)
    • 前: minSdkVersion 9
    • 後: minSdkVersion 14


0

上記のすべての解決策を試しました

Manifest.xml

  • このコードをマニフェストタグ内のxmlファイルの先頭に追加します。

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

  • 次に追加されました:

    tools:replace="android:icon,android:theme,android:label,android:name" アプリケーションタグに

しかし、どれもうまくいきませんでした。にあるXMLファイルを削除する必要がありました

mipmap-anydpi-v26 / ic_launcher_round.xml

私はアプリケーションをテストしていました

OSバージョン8.0.0を搭載したSamsung Galaxy 8

それは本当に解決策ですか?


0

AndroidManifest.xmlファイル内で、以下をapplicationノードに追加します。

tools:replace="android:appComponentFactory,android:icon,android:theme,android:label,android:name"
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.