Android studio Gradle simge hatası, Manifest Birleşme


141

Bu mesajı görmeye devam ediyorum ve nasıl çözüleceğinden emin değilim.

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

Simgesimle android:replace="android:icon"bile manifestoma eklemeyi denedim .

android:icon="@drawable/ic_launcherKütüphaneden silmeyi denedim ama maven'den içe aktarıldığım zaman geri gelmeye devam ediyor

Herhangi bir fikir ?


Bu sorun bildirim dosya etiketlerinde sorun olduğunda oluşur. Lütfen cevabı kontrol edin stackoverflow.com/a/39509659/2732632
Kimmi Dhingra

Manifest'te yinelenen izinler eklediğimde aynı sorunla karşılaştım.
Cloy

Yanıtlar:


342

Gradle için ana fest Birleşme aracının hatası gibi görünüyor.

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

Manifest etiketime ekleyerek çözdüm xmlns:tools="http://schemas.android.com/tools"

Daha sonra tools:replace="android:icon,android:theme"uygulama etiketine eklendi

Bu birleşmeye, diğer kütüphaneleri değil manifest ikonumu ve temayı kullanmasını söyler

Umarım yardımcı olur teşekkürler


6
Sorun hala benim için devam ediyor. Android Studio 1.1'de çalışma.
Bolling

1
Teşekkürler! Benim için çalıştı
Sandeep

4
Android 2.0'ın son sürümleri. çalışmıyor. Kim cevap verirse, bu Q'yu güncellemeliyse, yakında faydasız olacak
Karue Benson Karue

3
Studio 2.2 bugüne kadar hepsi bu ve nt bu sorunu çalışıyor
Prasad

2
2.2.0 sürümüne sahip Android Studio 2.2 için çalışmıyor.
DysaniazzZ

54

Ben ekleyerek bunu böyle düzeltmek, aynı sorun var xmlns:tools="http://schemas.android.com/tools"mainfest dosyanın başına ve eklemek tools:replace="android:icon"gibi bir görünüm olması

<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 ve sürüm 2.2.0 için çalışmıyor.
DysaniazzZ

parlak cevap
Gundu Bandgar

10

aynı hata var, sadece bu kod sorunumu çözmek, sizinle paylaşmak istiyorum:

içinde Manifest.xml:

  • bu kodu xml dosyanızın üstüne ekleyin:

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

  • Sonra eklendi:

    tools:replace="android:icon,android:theme,android:label,android:name" uygulama etiketine


@DysaniazzZ, Android Studio'ya bağlı değil. mesaj günlüğüne bakın.
Adnan Abdollah Zaki

Tamam, göreceğim.
DysaniazzZ

@Funwise, mesaj günlüğünüzü kontrol edin, bence android stüdyosuna bağlı değil.
Adnan Abdollah Zaki

@ adnan9011, sorunum Manifest dosyasında yinelenen izinlere sahip olmaktı.
Darush

9

Shimi_tap'ın cevabı yeterlidir. Hatırlamanız gereken şey sadece ihtiyacınız olanı seçmektir. {Simge, ad, tema, etiket} arasından seçim yapın. Ekledim tools:replace="android:icon,android:theme", işe yaramıyor. Ekledim tools:replace="android:icon,android:theme,android:label,android:name", işe yaramıyor. Eklediğimde işe yarıyor tools:replace="android:icon,android:theme,android:label". Bu nedenle manifest dosyalarınızda çatışmanın tam olarak ne olduğunu öğrenin.


1
Android Studio 2.2 ve sürüm 2.2.0 için çalışmıyor.
DysaniazzZ

5

Sadece eklemek xmlns:tools="http://schemas.android.com/tools"Manifest'inizde etikete ve ardından eklemek gerekmez tools:replace="android:icon" önce android:icon="@mipmap/ic_launcher" .


3

Bu hata, uygulamanızın minSdk değeri herhangi bir kitaplığın minSdk değerinden daha yüksek olduğunda da oluşur.

app's minSdk >= libraries minSdk

1
peki, çözüm nedir?
itzhar

2

ÇOK ZAMANLI GOOGLING SONRASI ÇÖZÜMÜ ALIN

ic_launcher'ınızı alın ve drawables klasörünüze yapıştırın,

Manifestinize gidin ve android'i değiştirin: icon = "@ drawable / ic_launcher"

Projenizi temizleyin ve yeniden oluşturun

Umarım sana yardımcı olur


2

Simgeyi çekilebilir durumdan mipmap'a değiştirirken bu sorunu yaşadım.

Sadece çizgiyi kaçırdım

tools:replace="android:icon"

manifest'te.


1

Herhangi bir nedenle android studio, çekilebilir klasörden uygulama simgesini çağırmayı sevmez. Bu durumda res klasörü altında mipmap kaynak dizini oluşturdum.

Res klasörü sağ tıklayın> yeni> android kaynak dizini> kaynak türü: mipmap ve şimdi herhangi bir simgeyi buraya bırakın ve manifest dosyasına referans verin. Bu yöntem benim için çalıştığı için bunu paylaşıyorum.

android: simgesi: @ çekilebilir / ic_launcher"

için

robot: simgesi = "@ mipmap / ic_launcher"


tarzı ayarlamak benim için en iyi görünüyordu android:theme="@style/AppTheme" -> gist.github.com/CrandellWS/4d284b11b5bca3054bddf8f511e49ae9
CrandellWS

1

Bunlardan hiçbiri işe yaramazsa Android Studio'yu kapatın. App / src / main adresine gidin, AndroidManifest.xml dosyasını bir metin düzenleyicide (yüce gibi) açın, erros satırlarını kaldırın / değiştirin, android stüdyosunu kaydedin ve yeniden açın.


1

Bir özellik değeri bir yer tutucu içerdiğinde (aşağıdaki biçime bakın), bildirim birleşmesi bu yer tutucu değerini enjekte edilen bir değerle değiştirir. Enjekte edilen değerler build.gradle içinde belirtilir. @ Bağlantılar için ayrıldığından, yer tutucu değerlerinin sözdizimi $ {name} şeklindedir. Son dosya birleştirme gerçekleştikten ve sonuçta birleştirilmiş android manifest dosyası yazılmadan önce, bir yer tutuculu tüm değerler enjekte edilen değerlerle değiştirilir. Değişken adı bilinmiyorsa bir yapı kırılması oluşturulur.

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


0

Shimi_tap'ın cevabı, sorunu çözmenin doğru yoludur. Eski birleşme aracını kullanmak istiyorsanız bunu build.gradle dosyasına ekleyebilirsiniz.

android {useOldManifestMerger true}


2
"1.0'da, eski manifesto birleşmesini çağırma yeteneğini kaldırdık." Tools.android.com/tech-docs/new-build-system/user-guide/…
devgrg

Org.gradle.api.Project türündeki ': app' projesinde [true] argümanları için useOldManifestMerger () yöntemi bulunamadı.
DysaniazzZ

0

Benim için bu sorun Google Play Hizmetleri güncellendikten sonra ortaya çıktı. Kullandığım kütüphanelerden biri, bu kütüphaneyi aşamalı referansında "+" kullanarak,

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

Bu sorun, söz konusu kitaplığın hedeflediği minimum sürümün, Google Play Hizmetlerinin geçerli sürümü tarafından hedeflenenden daha az olması nedeniyle bir sorun yarattı. Bunu günlüklere bakarak buldum.


0

Senin içinde .gradledeğişim MinSDK, örneğin:

  • build.gradle (Modül: uygulama)
    • önce: minSdkVersion 9
    • sonra: minSdkVersion 14

vb.


0

Yukarıda belirtilen tüm çözümü denedim

içinde Manifest.xml:

  • bu kodu manifest etiketi içinde xml dosyanızın üstüne ekleyin:

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

  • Sonra eklendi:

    tools:replace="android:icon,android:theme,android:label,android:name" uygulama etiketine

ama hiçbiri işe yaramadı. Bulunduğum bir xml dosyasını silmem gerekiyordu

mipmap-anydpi-v26 / ic_launcher_round.xml

Uygulamayı test ediyordum

İşletim sistemi sürüm 8.0.0 ile Samsung Galaxy 8

gerçekten bir çözüm mü?


0

AndroidManifest.xml dosyasında applicationdüğüme aşağıdakileri ekleyin :

tools:replace="android:appComponentFactory,android:icon,android:theme,android:label,android:name"
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.