wake-up-neo.com

Android Studio Gradle-Symbolfehler, Manifest Merger

Ich sehe diese Nachricht ständig und bin nicht sicher, wie ich sie für immer lösen kann.

Error:(43, 9) Attribute [email protected] 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

Versuchte, meinem Manifest sogar mit meinem Symbol Android:replace="Android:icon" hinzuzufügen.

Ich habe versucht, den Android:icon="@drawable/ic_launcher aus der Bibliothek zu löschen, aber es kommt immer wieder, wenn ich baue, weil es aus maven importiert wurde

Irgendwelche Ideen ?

133
shimi_tap

Es scheint die Schuld des Mainfest Merger Tools für Gradle zu sein.

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

Gelöst durch Hinzufügen zu meinem Manifest-Tag xmlns:tools="http://schemas.Android.com/tools"

Dann wurde tools:replace="Android:icon,Android:theme" zum Anwendungs-Tag hinzugefügt

Dies weist den Zusammenschluss an, mein Manifest-Symbol und mein Thema zu verwenden und nicht von anderen Bibliotheken 

Ich hoffe es hilft danke

328
shimi_tap

Ich habe dasselbe Problem, ich behebe es so, indem ich xmlns:tools="http://schemas.Android.com/tools" oben in der mainfest-Datei hinzufüge und tools:replace="Android:icon" hinzufüge, um aussehen zu können 

<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>
50
Mina Fawzy

ich habe den gleichen Fehler, nur dieser Code löst mein Problem, ich möchte mit Ihnen teilen:

im Manifest.xml:

  • Fügen Sie diesen Code oben in Ihre XML-Datei ein:

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

  • Dann hinzugefügt:

    tools:replace="Android:icon,Android:theme,Android:label,Android:name" zum Anwendungstag

10

Die Antwort von shimi_tap ist genug ..__ Was man sich merken sollte ist, dass man nur das wählt, was man braucht. Wählen Sie aus {Symbol, Name, Design, Beschriftung} . Ich habe tools:replace="Android:icon,Android:theme" hinzugefügt, es funktioniert nicht. Ich habe tools:replace="Android:icon,Android:theme,Android:label,Android:name" hinzugefügt, es funktioniert nicht. Es funktioniert, wenn ich tools:replace="Android:icon,Android:theme,Android:label" hinzugefügt habe. Finden Sie also heraus, was genau der Konflikt in Ihren Manifestdateien ist.

9
黄锐铭

Fügen Sie einfach xmlns:tools="http://schemas.Android.com/tools" zu Ihrem Manifest-Tag hinzu. Und dann müssen Sie tools:replace="Android:icon"_BEFORE_Android:icon="@mipmap/ic_launcher" hinzufügen. Viel Glück! : D

3
Ilya Cucumber

Dieser Fehler tritt auch auf, wenn die minSdk Ihrer App höher ist als die minSdk einer Bibliothek.

app's minSdk >= libraries minSdk
3
Hisham Muneer

ERHALTE DIE LÖSUNG NACH VIEL DER ZEIT BRENNEN

holen Sie sich einfach Ihr ic_launcher und fügen Sie es in Ihren Drawables-Ordner ein.

Gehen Sie zu Ihrem Manifest und Android ändern: icon = "@ drawable/ic_launcher"

Reinigen Sie Ihr Projekt und bauen Sie neu auf

Hoffe es hilft dir

2
Ismael ozil

Ich hatte dieses Problem, als ich das Symbol von drawable in mipmap änderte.

Ich habe nur die Zeile vermisst

tools:replace="Android:icon"

im Manifest.

2
Alecs

Aus irgendeinem Grund ruft Android Studio das App-Symbol nicht aus einem Zeichnungsordner auf. In diesem Fall habe ich das Mipmap-Ressourcenverzeichnis im res-Ordner erstellt. 

Klicken Sie mit der rechten Maustaste auf den Ordner res> neu> Android-Ressourcenverzeichnis> Ressourcentyp: mipmap und legen Sie ein beliebiges Symbol dort ab und verweisen Sie darauf in die Manifestdatei. Teilen, da diese Methode für mich funktioniert hat.

Android: Symbol: @ drawable/ic_launcher " 

zu 

Android: icon = "@ mipmap/ic_launcher"

1
Alex

Wenn nichts davon geht, schließen Sie Android Studio. Gehen Sie auf app/src/main, öffnen Sie die Datei AndroidManifest.xml in einem Texteditor (wie sublime), entfernen/ersetzen Sie die Fehlerzeilen, speichern und öffnen Sie Android Studio.

1
Ricardo Mutti

Wenn ein Attributwert einen Platzhalter enthält (siehe Format unten), wird die Manifest Fusion wird diesen Platzhalterwert mit einem injizierten .__ austauschen. Wert. Eingespritzte Werte werden im build.gradle angegeben. Die Syntax Für Platzhalterwerte ist $ {name}, da @ für Links reserviert ist. Nach dem Die letzte Datei wurde zusammengeführt und vor dem Ergebnis der Zusammenführung Android-Manifestdatei wird ausgeschrieben, alle Werte mit einem Platzhalter wird mit den injizierten Werten ausgetauscht. Ein Build-Fehler wird .__ sein. Wird generiert, wenn ein Variablenname unbekannt ist.

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

1
Shixin Zhang

Ich habe alle oben genannten Lösungen ausprobiert

im Manifest.xml:

  • Fügen Sie diesen Code oben in Ihre XML-Datei im Manifest-Tag ein:

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

  • Dann hinzugefügt:

    tools:replace="Android:icon,Android:theme,Android:label,Android:name" zum Anwendungstag

aber nichts davon hat funktioniert. Ich musste eine XML-Datei löschen, die sich in befand

mipmap-anydpi-v26/ic_launcher_round.xml

Ich habe die Anwendung in getestet

Samsung Galaxy 8 mit Betriebssystemversion 8.0.

ist es wirklich eine Lösung?

0
surhidamatya

Ändern Sie in Ihrem .gradle MinSDK beispielsweise:

  • build.gradle (Modul: app)
    • vorher: minSdkVersion 9
    • nach: minSdkVersion 14 

usw.

0
Briliant Fay

Die Antwort von Shimi_tap ist der richtige Weg, um das Problem zu beheben. Wenn Sie das alte Merger-Tool verwenden möchten, können Sie dies zur build.gradle-Datei hinzufügen

Android { useOldManifestMerger true }

0
San

in Manifest.xml:

coplete tools: replace = "Android: appComponentFactory"> gefällt dies

tools:replace="tools:replace="Android:appComponentFactory,Android:icon,Android:theme,Android:label,Android:name" to the application tag
0
Messou

Dieses Problem trat für mich nach der Aktualisierung der Google Play-Dienste auf. Eine der Bibliotheken, die ich verwendete, baute diese Bibliothek mit dem "+" in ihrem Gradelverweis ein, wie 

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

Dies führte zu einem Problem, da die von dieser Bibliothek anvisierte Min-Version nicht so hoch war wie die aktuelle Version von Google Play Services. Ich habe dies gefunden, indem ich einfach in den Protokollen nachgeschaut habe. 

0
Rarw