Ikon ikon Android studio Gradle, Manifest Merger


141

Saya terus melihat pesan ini dan tidak yakin bagaimana menyelesaikannya untuk selamanya.

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

Sudah mencoba menambahkan android:replace="android:icon"ke manifes saya bahkan dengan ikon saya.

Saya mencoba menghapus android:icon="@drawable/ic_launcherdari perpustakaan tetapi terus kembali ketika saya membangun karena diimpor dari pakar

Ada ide?


Masalah ini terjadi ketika masalah dalam tag file manifes. Silakan periksa jawabannya stackoverflow.com/a/39509659/2732632
Kimmi Dhingra

Saya menghadapi masalah yang sama ketika saya menambahkan izin rangkap dalam manifes.
Cloy

Jawaban:


342

Tampaknya menjadi kesalahan alat Penggabungan mainfest untuk gradle.

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

Dipecahkan dengan menambahkan tag manifes saya xmlns:tools="http://schemas.android.com/tools"

Kemudian ditambahkan tools:replace="android:icon,android:theme"ke tag aplikasi

Ini memberitahu merger untuk menggunakan ikon manifes dan tema saya dan bukan dari perpustakaan lain

Semoga ini bisa membantu, terima kasih


6
Masalahnya masih ada untuk saya. Bekerja di Android Studio 1.1.
Bolling

1
Terima kasih! Bekerja untuk saya
Sandeep

4
Versi terbaru Android 2.0. tidak bekerja Siapa pun yang menjawab harus memperbarui Q ini jika ia bermaksud menyelamatkan generasi lain, itu akan segera sia-sia
Karue Benson Karue

3
Studio 2.2 mulai hari ini memiliki semua ini dan menyelesaikan masalah ini
Prasad

2
tidak bekerja untuk Android Studio 2.2 dengan gradle 2.2.0.
DysaniazzZ

54

Saya memiliki masalah yang sama, saya memperbaikinya seperti ini dengan menambahkan xmlns:tools="http://schemas.android.com/tools"ke bagian atas file mainfest, dan menambahkan tools:replace="android:icon"agar terlihat seperti

<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
tidak bekerja untuk Android Studio 2.2 dan gradle 2.2.0.
DysaniazzZ

jawaban cemerlang
Gundu Bandgar

10

saya memiliki kesalahan yang sama, hanya kode ini yang menyelesaikan masalah saya, saya ingin berbagi dengan Anda:

di Manifest.xml:

  • tambahkan kode ini di atas file xml Anda:

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

  • Kemudian ditambahkan:

    tools:replace="android:icon,android:theme,android:label,android:name" ke tag aplikasi


@DysaniazzZ, tidak tergantung Android Studio. lihat log pesan.
Adnan Abdollah Zaki

Oke, saya akan melihat.
DysaniazzZ

@Funwise, periksa log pesan Anda, saya pikir itu tidak tergantung pada android studio.
Adnan Abdollah Zaki

@ adnan9011, masalah saya adalah memiliki izin duplikat di file Manifest.
Darush

9

Jawaban shimi_tap sudah cukup. Yang harus diingat adalah bahwa hanya memilih apa yang Anda butuhkan. Pilih dari {ikon, nama, tema, label}. Saya menambahkan tools:replace="android:icon,android:theme", itu tidak berhasil. Saya menambahkan tools:replace="android:icon,android:theme,android:label,android:name", itu tidak berhasil. Ini berfungsi ketika saya menambahkan tools:replace="android:icon,android:theme,android:label". Jadi cari tahu apa konflik sebenarnya di file manifes Anda.


1
tidak bekerja untuk Android Studio 2.2 dan gradle 2.2.0.
DysaniazzZ

5

Tambahkan saja xmlns:tools="http://schemas.android.com/tools"tag manifes Anda, dan kemudian Anda perlu menambahkan tools:replace="android:icon" sebelumnya android:icon="@mipmap/ic_launcher" .


3

Kesalahan ini juga terjadi ketika minSdk aplikasi Anda lebih tinggi dari minSdk perpustakaan mana pun.

app's minSdk >= libraries minSdk

1
jadi apa solusinya?
itzhar

2

DAPATKAN SOLUSI SETELAH BANYAK GOOGLING WAKTU

dapatkan saja ic_launcher Anda dan rekatkan di folder drawables Anda,

Buka manifes Anda dan ubah android: icon = "@ drawable / ic_launcher"

Bersihkan proyek Anda dan bangun kembali

Semoga ini bisa membantu Anda


2

Saya mengalami masalah saat mengubah ikon dari drawable ke mipmap.

Saya hanya melewatkan garis

tools:replace="android:icon"

dalam manifes.


1

Untuk beberapa alasan android studio tidak suka memanggil ikon aplikasi dari folder yang dapat ditarik. Jadi dalam hal ini saya membuat direktori sumber daya mipmap di bawah folder res.

Klik kanan folder res> baru> direktori sumber android> jenis sumber daya: mipmap dan sekarang letakkan ikon apa pun di sana kemudian rujuk ke file manifes. Berbagi ini karena metode ini bekerja untuk saya.

android: icon: @ drawable / ic_launcher "

untuk

android: icon = "@ mipmap / ic_launcher"


bagi saya pengaturan gaya tampak lebih baik android:theme="@style/AppTheme" dilihat -> gist.github.com/CrandellWS/4d284b11b5bca3054bddf8f511e49ae9
CrandellWS

1

Jika tidak ada yang berhasil, tutup Android Studio. Buka aplikasi / src / main, buka file AndroidManifest.xml dalam editor teks (seperti sublime), hapus / ganti garis erros, simpan dan buka kembali android studio.


1

Ketika nilai atribut berisi placeholder (lihat format di bawah), merger nyata akan menukar nilai placeholder ini dengan nilai yang disuntikkan. Nilai yang dimasukkan ditentukan dalam build.gradle. Sintaks untuk nilai placeholder adalah $ {name} karena @ dicadangkan untuk tautan. Setelah penggabungan file terakhir terjadi, dan sebelum file manifes android gabungan yang dihasilkan ditulis, semua nilai dengan placeholder akan ditukar dengan nilai yang disuntikkan. Kerusakan build akan dihasilkan jika nama variabel tidak dikenal.

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


0

Jawaban Shimi_tap adalah cara yang tepat untuk memperbaiki masalah. Jika Anda ingin menggunakan alat merger lama, Anda dapat menambahkan ini ke file build.gradle

android {useOldManifestMerger true}


2
"Pada 1.0, kami menghapus kemampuan untuk meminta merger manifes lama ..." tools.android.com/tech-docs/new-build-system/user-guide/…
devgrg

Tidak dapat menemukan metode useOldManifestMerger () untuk argumen [benar] pada proyek ': app' dari tipe org.gradle.api.Project.
DysaniazzZ

0

Bagi saya, masalah ini terjadi setelah memperbarui Layanan Google Play. Salah satu perpustakaan yang saya gunakan menggabungkan perpustakaan ini menggunakan "+" dalam referensi gradel, seperti

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

Ini menciptakan masalah karena versi min yang ditargetkan oleh perpustakaan itu kurang dari apa yang ditargetkan oleh versi Google Play Services saat ini. Saya menemukan ini hanya dengan melihat log.


0

Di .gradleMinSDK perubahan Anda , misalnya:

  • build.gradle (Modul: aplikasi)
    • sebelum: minSdkVersion 9
    • setelah: minSdkVersion 14

dll.


0

Saya mencoba semua solusi yang disebutkan di atas

di Manifest.xml:

  • tambahkan kode ini di atas file xml Anda di dalam tag manifes:

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

  • Kemudian ditambahkan:

    tools:replace="android:icon,android:theme,android:label,android:name" ke tag aplikasi

tapi tidak ada yang berhasil. Saya perlu menghapus file xml yang terletak di

mipmap-anydpi-v26 / ic_launcher_round.xml

Saya sedang menguji aplikasi di

Samsung Galaxy 8 dengan OS versi 8.0.0

apakah ini benar-benar solusi?


0

Di dalam file AndroidManifest.xml, tambahkan berikut ini ke applicationsimpul:

tools:replace="android:appComponentFactory,android:icon,android:theme,android:label,android:name"
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.