Manifest Merger gagal dengan banyak kesalahan di Android Studio


249

Jadi, saya pemula di Android dan Java. Saya baru mulai belajar. Saat saya bereksperimen dengan Intent hari ini, saya mengalami kesalahan.

Error:Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed with multiple errors, see logs

Saya menemukan beberapa solusi di sini dan mencoba menerapkannya, tetapi tidak berhasil.

Ini adalah build.gradle saya:

apply plugin: 'com.android.application'

android {
compileSdkVersion 23
buildToolsVersion "23.0.0"

defaultConfig {
    applicationId "com.example.rohan.petadoptionthing"
    minSdkVersion 10
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.0.0'
}

Ini adalah AndroidManifest saya:

<?xml version="1.0" encoding="utf-8"?>

package="com.example.rohan.petadoptionthing" >

<application

    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity android:name=".Second"
        />

    <activity android:name=".third"/>
    <activity android:name=".MainActivity"/>


</application>

Ini minggu pertama saya dengan coding, saya minta maaf jika ini adalah hal yang sangat konyol. Saya benar-benar baru dalam hal ini dan tidak menemukan tempat lain untuk bertanya. Maaf jika saya melanggar aturan


2
hapus baris <activity android: name = ". MainActivity" /> di file menifest.xml Anda
Pankaj Talaviya

10
Untuk informasi terperinci tentang kesalahan Anda dapat memeriksa Gradle Console di Android Studio di sudut kanan bawah.
DragonT

Saya harap tautan ini bermanfaat.
Mortreza AD

Saya mendapat kesalahan yang sama. Tetapi menyelesaikannya dengan menjaga SDK minimum yang sama di proyek dan perpustakaan.
Raja Jawahar

youtu.be/K88WaSm3q8Y "Manifest Merger gagal dengan banyak kesalahan di Android Studio"?
Roman Pokrovskij

Jawaban:


964

Buka manifes aplikasi ( AndroidManifest.xml) dan klik Merged Manifest. Periksa gambar di bawah ini:

android-manifest-merge-feature

Dari gambar Anda dapat melihat Kesalahan di kolom kanan, cobalah untuk menyelesaikan kesalahan. Mungkin membantu seseorang dengan masalah yang sama. Baca lebih lanjut di sini .


5
brilian ... tidak dapat menemukan kata-kata untuk mengucapkan terima kasih
Shahzad Afridi

2
dalam kasus saya, saya menggulirkannya sedikit ke bawah untuk melihat kesalahan
CodeToLife

Sayangnya, tidak ada tab "Merged Manifest" di Android Studio 3.5.2.
FractalBob

@FractalBob Saya menjalankan 3.5.2 dan melihat tab 'Manifes Digabungkan' .. mungkin Anda memiliki beberapa kesalahan lain yang terjadi sebelum manifes digabungkan.
sonyisda1

@ sonyisda1 Apakah Anda menjalankan lingkungan Linux? Saya memiliki Ubuntu 18,04 LTS.
FractalBob

120

Hapus <activity android:name=".MainActivity"/>dari file mainfest Anda. Seperti yang telah Anda definisikan sebagai:

 <activity
        android:name=".MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

Jadi, file Manifest menunjukkan ambiguitas.


31
Sayang sekali bahwa ini adalah jawaban yang diterima, ketika itu hanya memperbaiki kode Rowen tetapi sama sekali tidak membantu bagi orang lain. Jawaban oleh CLIFFORD sebenarnya menunjukkan kepada Anda bagaimana "melihat log" seperti pesan kesalahan menyarankan.
Andrew Koster

Ini berfungsi sangat baik hanya memeriksa dan menghapus entri duplikat dalam file AndroidManifest.xml.
vishwajit76

61

Bagi saya INI bekerja -

Menemukan Kesalahan Penggabungan di AndroidManifest.xml

masukkan deskripsi gambar di sini

Klik pada Manifest Tergabung dalam AndroidManifest.xml

masukkan deskripsi gambar di sini

Anda dapat melihat kesalahan penggabungan nyata di kolom kanan. Mungkin membantu menyelesaikan masalah ini.


3
Ini adalah perbaikan umum untuk masalah ini. Ini membantu Anda menemukan alasan sebenarnya untuk masalah apa pun mengenai hal ini.
JoeGalind

60

Saya juga menghadapi masalah yang sama, dan setelah banyak penelitian menemukan solusinya:

  1. Versi min sdk Anda harus sama dengan modul yang Anda gunakan misalnya: modul min sdk modul Anda adalah 14 dan versi aplikasi min sdk Anda adalah 9 Itu harus sama.
  2. Jika versi aplikasi dan modul Anda tidak sama. Sekali lagi itu harus sama ** Singkatnya, build.gradlefile aplikasi Anda dan manifes harus memiliki konfigurasi yang sama **
  3. Tidak ada duplikasi seperti izin yang sama ditambahkan dalam file manifes dua kali, aktivitas yang sama menyebutkan dua kali.
  4. Jika Anda telah menghapus aktivitas apa pun dari proyek Anda, hapus juga dari file manifes Anda.
  5. Kadang-kadang ini karena label, ikon dll tag file manifes:

a) Tambahkan xmlns:toolsbaris dalam tag manifes.

b) Tambahkan tools:replace=atau tools:ignore=dalam tag aplikasi.

Contoh:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.slinfy.ikharelimiteduk"
    xmlns:tools="http://schemas.android.com/tools"
    android:versionCode="1"
    android:versionName="1.0" >

  <application
      tools:replace="icon, label"
      android:label="myApp"
      android:name="com.example.MyApplication"
      android:allowBackup="true"
      android:hardwareAccelerated="false"
      android:icon="@drawable/ic_launcher"
      android:theme="@style/Theme.AppCompat" >
  </application>

</manifest>
  1. Jika dua dependensi tidak versi versi yang sama: Anda menggunakan dependensi untuk appcompat v7: 26.0.0 dan untuk facebook com.facebook.android:facebook-android-sdk:[4,5) facebook menggunakan cardview versi com.android. dukungan: cardview-v7: 25.3.1 dan appcompat v7: 26.0.0 menggunakan cardview versi v7: 26.0.0, Jadi ada perbedaan dalam dua perpustakaan dan dengan demikian memberikan kesalahan

Kesalahan: Eksekusi gagal untuk tugas ': app: processDebugManifest'.

Manifest merger gagal: Atribut meta-data#android.support.VERSION@value value = (26.0.0-alpha1) dari [com.android.support:appcompat-v7:26.0.0-alpha1] AndroidManifest.xml: 27: 9 -38 juga hadir di [com.android.support:cardview-v7:25.3.1] AndroidManifest.xml: 24: 9-31 value = (25.3.1). Saran: tambahkan 'tools: replace = "android: value"' ke elemen di AndroidManifest.xml: 25: 5-27: 41 untuk menggantikan.

Jadi dengan menggunakan appcompat versi 25.3.1, Kita dapat menghindari kesalahan ini

Dengan mempertimbangkan poin-poin di atas dalam pikiran, Anda akan menyingkirkan masalah menjengkelkan ini. Anda dapat memeriksa blog saya juga https://wordpress.com/post/dhingrakimmi.wordpress.com/23


1
dalam kasus saya itu karena tema modul yang saya tambahkan jadi saya gunakan sebagai alat: ganti "ikon, label, tema"
turbandroid

dalam kasus saya itu karena tema modul yang saya tambahkan jadi saya gunakan sebagai alat: ganti "ikon, label, tema" dan xmlns: tools = " schemas.android.com/tools ". thanks @ O'one
alfo888_ibg

14

Selain solusi yang tersedia, silakan periksa ini juga.
Jika Anda telah mengatur android:allowBackup="false"di Anda AndroidManifest.xmlmaka mungkin ada konflik android:allowBackup="true"di dependensi lain.

Solusi
Seperti yang disarankan oleh @CLIFFORD PY, alihkan ke Merged ManifestdalamAndroidManifest.xml . Android Studio akan menyarankan untuk menambahkan tools:replace="android:allowBackup"di <application />dalam Anda AndroidManifest.xml.


12

Saya menghadapi masalah yang sama dan saya baru saja menambahkan satu baris di manifes.xml saya dan itu berhasil untuk saya.

tools:replace="android:allowBackup,icon,theme,label,name"> 

tambahkan baris ini di bawah

<application
    android:name=".MyApplication"
    android:allowBackup="true"
    android:icon="@drawable/launcher"
    android:label="@string/app_name"
    android:largeHeap="true"
    android:screenOrientation="portrait"
    android:supportsRtl="true"
    android:theme="@style/AppThemecustom"
    tools:replace="android:allowBackup,icon,theme,label">

Semoga ini bisa membantu.


Terima kasih banyak! Saya menghadapi masalah ini dalam skenario yang sangat spesifik yang disebabkan oleh halaman dukungan Zendesk, ketika mengklik "lampirkan file". Sudah mencoba banyak jawaban dari berbagai pertanyaan dan hanya komentar Anda yang membantu!
Natalie

@ Natalie Aku senang itu membantu :)
Pre_hacker

11

Cukup tambahkan kode di bawah ini dalam tag aplikasi Manifest proyek Anda ...

<application
        tools:node="replace">

Terima kasih banyak
tej shah

8

Dalam kasus saya itu menunjukkan kesalahan karena ada <uses-permission>elemen redundansi . Jadi, harap periksa diAndroidManifest.xml file untuk hal yang sama.

Versi Android Studio adalah 3.0.1

Sistem Operasi adalah Windows 7

Ini screenshot untuk referensi.

Tangkapan layar yang menunjukkan redundansi dalam file manifes.


Sementara ini diposting sebelum jawaban @ CLIFFORD-PY, menemukan kesalahan penggabungan melalui tampilan Manifest Gabungan akan menangkap kesalahan yang berlebihan ini.
sonyisda1


7

Biasanya terjadi ketika Anda memiliki kesalahan di manifes Anda. Buka AndroidManifest.xml. Klik pada tab manifes gabungan. Kesalahan dapat dilihat di sana. Juga sertakan saran yang disebutkan di sana. Ketika saya memiliki masalah yang sama saat mengimpor com.google.android.gms .maps.model.LatLng, disarankan agar saya menyertakan alat: overrideLibrary = "com.google.android.gms.maps" di tag aplikasi dan build berhasil.


3

Kasus saya, saya sudah memperbaikinya

build.gradle (Modul: aplikasi)

defaultConfig {
----------
multiDexEnabled true
}
dependencies {
    ...........
    implementation 'com.google.android.gms:play-services-gcm:11.0.2'
    implementation 'com.onesignal:OneSignal:3.+@aar'
    }

Jawaban ini kembali ke notifikasi push OnSignal


2
  1. Dalam AndroidManifest.xml:

    • Pada aplikasi, tambahkan tools:replace="android:icon, android:themedan
    • Di root Manifest, tambahkan xmlns:tools="http://schemas.android.com/tools
  2. Dalam build.gradle:

    • Di root, tambahkan useOldManifestMerger true

2

Versi minium sdk harus sama dengan modul / lib yang Anda gunakan Sebagai contoh: Modul min sdk versi Anda adalah 26 dan versi aplikasi min sdk Anda adalah 21 Itu harus sama.


1

selama beberapa hari terakhir saya juga mengalami masalah yang sama. Tetapi setelah banyak penelitian akhirnya saya menemukan solusi untuk ini.
Untuk mengatasi masalah ini, apa yang perlu Anda lakukan adalah:
1. Periksa apakah proyek Anda build.gradle file dan modul build.gradle file yang mengandung versi yang sama dari semua ketergantungan.
2. Pastikan, kompilasiSdkVersion proyek Anda , buildToolsVersion , minSdkVersion , dan targetSdkVersion cocok dengan yang ada di modul atau pustaka yang telah Anda tambahkan ke dalam proyek.

compileSdkVersion 25
buildToolsVersion "25.0.0"
defaultConfig {
    applicationId "com.example.appname"
    minSdkVersion 16
    targetSdkVersion 25
    versionCode 22
    versionName "2.0.3"

}

Semoga ini membantu.


1

Jika setelah Anda menambahkan Modul Perpustakaan Android dan Anda mendapatkan kesalahan ini.
Anda dapat memperbaikinya dengan menghapus sederhana android:label="@string/app_name"dari Modul Perpustakaan AndroidAndroidManifest.xml Anda


1

Buka konsol gradle Anda, lalu Anda melihat gradle menyarankan Anda untuk menambahkan baris tertentu (Seperti: tools: replace = "android: allowBackup" atau tools: replace = "android: label" dll). Tambahkan baris itu ke file manifes Anda di bawah tag dan sinkronisasi gradle, itu saja.


1

Dalam kasus saya itu terjadi karena meninggalkan beberapa filter niat kosong di dalam tag Activity

    <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar">

            <intent-filter>

            </intent-filter>

    </activity> 

Jadi hanya menghapus mereka memecahkan masalah.

    <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar">
    </activity> 

0

Sebagai pemula di Android Studio, dalam kasus saya, saya telah memindahkan proyek yang ada dari Eclipse ke Android Studio dan menemukan bahwa ada definisi duplikat dari suatu aktivitas di dalam Manifest.xml saya yang belum diambil oleh Eclipse ditunjukkan sebagai kesalahan Gradle.

Saya menemukan ini dengan masuk ke Gradle Console (kanan bawah layar).


0

Terjadi dengan saya dua kali ketika saya refractor (Ganti nama dengan SHIFT + F6) nama bidang dalam file kami dan meminta Anda untuk mengubahnya di mana-mana dan kami tanpa memperhatikan mengubah nama di mana-mana. Misalnya, jika Anda memiliki nama variabel "id" di kelas Java Anda dan Anda menamainya dengan SHIFT + F6. Jika Anda tidak memperhatikan dialog berikutnya yang akan menanyakan Anda di mana saja itu akan mengubah id dan Anda mencentang memeriksa semua itu akan mengubah semua id di file tata letak Anda dari nilai baru.


0

ini adalah kesalahan yang sangat sederhana hanya terjadi ketika Anda mendefinisikan panggilan aktivitas apa pun dua kali dalam file mainifest.xml Seperti contoh

<activity android:name="com.futuretech.mpboardexam.Game" ></activity>

//and launcher also------like that



//solution:use only one 

0

Letakkan ini di akhir build.gradle modul aplikasi Anda:

configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
    def requested = details.requested
    if (requested.group == 'com.android.support') {
        if (!requested.name.startsWith("multidex")) {
            details.useVersion '25.3.0'
        }
    }
}}

dari ini


0

Tambahkan jawabannya Phan Van Linh. Saya menghapus baris ini:

  android:icon="@mipmap/ic_launcher"
  android:label="name"

0

Hanya bermigrasi ke Androidx seperti yang ditunjukkan di atas dan kemudian mengatur versi minimum SDK ke 26 ... tanpa keraguan ini berfungsi dengan baik


0

Retasan berikut ini berfungsi:

  1. Tambahkan xmlns:tools="http://schemas.android.com/tools"baris dalam tag manifes
  2. Tambahkan tools:replace="android:icon,android:theme,android:allowBackup,label,name" tag aplikasi


0

Dalam kasus saya, saya menggunakan beberapa penjelasan dari perpustakaan jetbrains. Saya menghapus anotasi dan dependensi itu dan berfungsi dengan baik.

Jadi silakan periksa perpustakaan dalam kode android dan dependensi dengan hati-hati.


0

Jika Anda menggunakan banyak manifestPlaceholderitem dibuild.gradle file Anda, Anda harus menambahkannya sebagai elemen array, bukan item yang terpisah.

Misalnya, ini akan menyebabkan kesalahan pembangunan atau kesalahan kompilasi: "java.lang.RuntimeException: Penggabungan gagal dengan beberapa kesalahan":

android {
    ...
    defaultConfig {
        manifestPlaceholders = [myKey1: "myValue1"]
        manifestPlaceholders = [myKey2: "myValue2"] // Error!
    }
}

Ini akan memperbaiki kesalahan:

android {
    ...
    defaultConfig {
        manifestPlaceholders = [myKey1: "myValue1", myKey2: "myValue2"]
    }
}

0

Ini karena Anda menggunakan pustaka Material baru dengan Pustaka Dukungan lawas.

Anda harus bermigrasi android.supportke androidxagar dapat digunakan com.google.android.material.

Jika Anda menggunakan android studio v 3.2 atau lebih baru, cukup

pergi ke refactor ---> MIGRATE TO ANDROID X.

Lakukan backup proyek Anda.


0

Saya menggunakan FirebaseUI Librarybersama dengan Facebook SDK Library, yang menyebabkan saya masalah.

implementation 'com.firebaseui:firebase-ui-database:0.4.4'
implementation 'com.facebook.android:facebook-android-sdk:[4,5)'

Dan dari [sini] [1], saya menyingkirkan masalah ini.

Dengan latest updatedari FirebaseUI perpustakaan , versi sebelumnya dari Facebook SDK juga merupakan bagian dari itu.

Jika Anda menggunakan kedua perpustakaan, harap hapus Facebook SDK Library .

https://github.com/firebase/FirebaseUI-Android/issues/230

MEMPERBARUI

Dari Android Studio 3.0dan versi yang lebih baru, app.gradlefile diperlukan untuk digunakan implementationatau apialih-alih compileuntuk menambahkan dependensi ke aplikasi.


0

Setelah melihat jawaban CLIFFORD untuk melihat kesalahan, yang membantu saya untuk mengatasi masalah ini adalah mengganti nama 'android: namex' menjadi 'android: name' di tag action intent-filter. Seandainya solusi yang sama membantu orang lain.

    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:namex="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
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.