Ошибка манифеста слияния с несколькими ошибками в Android Studio

Итак, я новичок в Android и Java. Я только начал учиться. В то время как я экспериментировал с Intent сегодня, я понес ошибку.

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

Я нашел здесь несколько решений и попытался их реализовать, но это не сработало.

Это мой build.gradle:

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'
}

Это мой AndroidManifest:

<?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>

Это моя первая неделя с кодированием, мне жаль, если это действительно глупо. Я действительно новичок в этом и не нашел другого места, чтобы спросить. Извините, если я нарушил правила.

Ответ 1

Удалите <activity android:name=".MainActivity"/> из файла mainfest. Как вы уже определили его как:

 <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>

Итак, файл манифеста показывает двусмысленность.

Ответ 2

Откройте манифест приложения (AndroidManifest.xml), нажмите " Merged Manifest Проверьте изображение

enter image description here

На изображении вы можете увидеть ошибку в правом столбце, попробуйте решить ее. Это может помочь кому-то с такой же проблемой. Подробнее здесь

Ответ 3

Я также столкнулся с теми же проблемами, и после многих исследований нашел решение:

  1. Ваша версия min sdk должна быть такой же, как у модулей, которые вы используете, например: ваш модуль min sdk версии составляет 14, а ваша версия приложения min sdk - 9. Она должна быть такой же.
  2. Если версия сборки вашего приложения и модулей не одинакова. Опять же, это должно build.gradle ** Короче говоря, файл и манифест приложения build.gradle должны иметь одинаковые конфигурации **
  3. В файле манифеста нет дубликатов, подобных тем же разрешениям, что и дважды.
  4. Если вы удалили какую-либо деятельность из своего проекта, удалите ее и из файла манифеста.
  5. Иногда его из-за метки, значка etc тега файла манифеста:

a) Добавьте строку xmlns:tools в тег манифеста.

b) Добавить tools:replace= или tools:ignore= в теге приложения.

Пример:

<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. Если две зависимости не совпадают с примером версии: вы используете зависимость для appcompat v7: 26.0.0 и для facebook com.facebook.android:facebook-android-sdk:[4,5) facebook использует картографию версии com.android. поддержка: cardview-v7: 25.3.1 и appcompat v7: 26.0.0 использует картографию версии v7: 26.0.0, поэтому в двух библиотеках есть дисценария и, таким образом, дают ошибку

Ошибка: выполнение выполнено для задачи ': app: processDebugManifest'.

Не удалось слияние манифеста: атрибут meta-data#[email protected] value = (26.0.0-alpha1) из [com.android.support:appcompat-v7:26.0.0-alpha1] AndroidManifest.xml: 27: 9 -38 также присутствует в [com.android.support:cardview-v7:25.3.1] AndroidManifest.xml: 24: 9-31 value = (25.3.1). Предложение: add 'tools: replace = "android: значение" "для элемента на AndroidManifest.xml: 25: 5-27: 41 для переопределения.

Таким образом, используя appomppat версии 25.3.1, мы можем избежать этой ошибки

Рассматривая вышеуказанные моменты, вы избавитесь от этой раздражающей проблемы. Вы также можете проверить мой блог https://wordpress.com/post/dhingrakimmi.wordpress.com/23

Ответ 4

Для меня ЭТО работает -

Поиск слияния ошибок в AndroidManifest.xml

enter image description here

Нажмите "Объединенный манифест" в AndroidManifest.xml

enter image description here

Вы можете просмотреть ошибку слияния манифеста в правом столбце. Это может помочь решить эту проблему.

Ответ 5

Я столкнулся с той же проблемой, и я добавил только одну строку в свой манифест. Xml, и это сработало для меня.

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

добавьте эту строку под

<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">

Надеюсь, это поможет.

Ответ 6

В дополнение к доступным решениям, пожалуйста, также проверьте это.
Если вы установили android:allowBackup="false" в свой AndroidManifest.xml, тогда может быть конфликт для android:allowBackup="true" в других зависимостях.

Решение
Как предложено @CLIFFORD P Y, переключитесь на Merged Manifest в AndroidManifest.xml. Android Studio предложит добавить tools:replace="android:allowBackup" в <application /> в ваш AndroidManifest.xml.

Ответ 7

В моем случае он показывал ошибку, потому что в элементе <uses-permission> была избыточность. Итак, проверьте файл AndroidManifest.xml.

Версия Android Studio 3.0.1

Операционная система - Windows 7

Вот скриншот для справки.

Screen-shot which shows redundancy in manifest file.

Ответ 8

Обычно происходит, когда у вас есть ошибки в вашем манифесте. Откройте AndroidManifest.xml. Нажмите на объединенную вкладку манифеста. Здесь можно увидеть ошибки. Также есть предложения, упомянутые там. Когда у меня была аналогичная проблема при импорте com.google. android.gms.maps.model.LatLng, он предложил включить инструменты: overrideLibrary = "com.google.android.gms.maps" в тег приложения и сборка была успешной.

Ответ 9

Просто добавьте ниже код в свой тег приложения Manifest...

<application
        tools:node="replace">

Ответ 10

Я решил это с помощью Refactor → Migrate to AndroidX

GL

Ответ 11

В моем случае я исправил его

build.gradle (модуль: приложение)

defaultConfig {
----------
multiDexEnabled true
}
dependencies {
    ...........
    implementation 'com.google.android.gms:play-services-gcm:11.0.2'
    implementation 'com.onesignal:OneSignal:[email protected]'
    }

Этот ответ переименован в onSignal push notification

Ответ 12

  • В AndroidManifest.xml:

    • В приложении добавьте tools:replace="android:icon, android:theme и
    • В корне манифеста добавьте xmlns:tools="http://schemas.android.com/tools
  • В build.gradle:

    • В корневой папке добавьте useOldManifestMerger true

Ответ 13

за последние несколько дней я тоже переживал ту же проблему. Но после, много исследований я наконец нашел решение для этого.
Чтобы решить эту проблему, вам нужно сделать следующее: 1. Убедитесь, что ваш проект build.gradle, а файл build.gradle содержит те же версии всех зависимостей. 2. Убедитесь, что ваш проект compileSdkVersion, buildToolsVersion, minSdkVersion и targetSdkVersion совпадает с вашим проектом в модулей или библиотек, которые вы добавили в проект.

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

}

Надеюсь, это поможет.

Ответ 14

Если после добавления Библиотечного модуля Android и вы получите эту ошибку.
Вы можете исправить его простым удалением android:label="@string/app_name" из AndroidManifest.xml вашего модуля библиотеки Android

Ответ 15

Откройте консоль градиента, затем вы увидите, что град предлагает добавить конкретную строку (например: tools: replace = "android: allowBackup" или инструменты: replace = "android: label" и т.д.). Добавьте эту строку в ваш файл манифеста под тегом и градиентом синхронизации, что и он.

Ответ 16

Версия minium sdk должна быть такой же, как у модулей /lib, которые вы используете. Например: ваш модуль min sdk версии равен 26, а ваше приложение min sdk version равно 21. Оно должно быть таким же.

Ответ 17

В моем случае это произошло для того, чтобы оставить некоторый пустой фильтр намерений внутри тега Activity

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

            <intent-filter>

            </intent-filter>

    </activity> 

Поэтому просто их устранение решило проблему.

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

Ответ 18

Как новичок в Android Studio, в моем случае я переместил существующий проект из Eclipse в Android Studio и обнаружил, что было дублированное определение активности в моем манифесте .xml, который не был поднят Eclipse была показана как ошибка Gradle.

Я нашел это, перейдя в консоль Gradle (в нижней правой части экрана).

Ответ 19

Случилось со мной дважды, когда я преломляю (переименовать с SHIFT + F6) имя поля в наших файлах, и он просит вас изменить его всюду, и мы, не обращая внимания, меняем имя везде. Например, если у вас есть имя переменной "id" в вашем классе Java, и вы переименовываете его с помощью SHIFT + F6. Если вы не обратили внимание на следующее диалоговое окно, в котором вас спросят, где бы он ни изменил идентификатор, и отметьте отметку, все это изменит весь идентификатор в ваших файлах макета из нового значения.

Ответ 20

Это очень простая ошибка возникает только при определении любого вызова активности два раза в файле mainifest.xml Пример, например

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

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



//solution:use only one 

Ответ 21

Я использовал FirebaseUI Library вместе с Facebook SDK Library, что вызывало у меня проблему.

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

А с [здесь] [1] я избавился от этой проблемы.

С latest update из библиотеки FirebaseUI предыдущая версия Facebook SDK также является ее частью.

Если вы используете обе библиотеки, удалите библиотеку Facebook SDK.

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

UPDATE

В Android Studio 3.0 и более поздних версиях файл app.gradle должен использовать implementation или api вместо compile для добавления зависимостей в приложение.

Ответ 22

Поместите это в конец вашего модуля приложения build.gradle:

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'
        }
    }
}}

из этого

Ответ 23

Дополните ответ Phan Van Linh. Я удалил следующие строки:

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

Ответ 24

Моя проблема была связана с библиотекой поддержки, поэтому я сделал то, что @SHADOW NET сказал в моем модуле приложения build.gradle:

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'
        }
    }
}}

Ответ 25

очень простой способ решить эту ошибку, пожалуйста, нажмите здесь https://youtu.be/K88WaSm3q8Y

Ответ 26

Просто перейдите на Androidx, как показано выше, а затем установите минимальную версию SDK на 26... без сомнения, это работает отлично

Ответ 27

Следующий хак работает:

  1. Добавьте строку xmlns:tools="http://schemas.android.com/tools" в тег манифеста
  2. Добавьте tools:replace="android:icon,android:theme,android:allowBackup,label,name" в теге приложения

Ответ 28

Я решил это, удалив android:replace тег

Ответ 29

В моем случае я использовал некоторые аннотации из библиотеки jetbrains. Я удалил эти аннотации и зависимости, и все работало нормально.

Поэтому, пожалуйста, внимательно проверьте библиотеки в Android-коде и зависимостях.

Ответ 30

Если вы используете несколько элементов manifestPlaceholder в своем файле build.gradle, вы должны добавить их как элементы массива, а не как отдельные элементы.

Например, это приведет к ошибке сборки или ошибке компиляции: "java.lang.RuntimeException: сбой слияния с множественными ошибками":

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

Это исправит ошибку:

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