Ошибка манифеста слияния с несколькими ошибками в 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
Я также столкнулся с теми же проблемами, и после многих исследований нашел решение:
- Ваша версия min sdk должна быть такой же, как у модулей, которые вы используете, например: ваш модуль min sdk версии составляет 14, а ваша версия приложения min sdk - 9. Она должна быть такой же.
- Если версия сборки вашего приложения и модулей не одинакова. Опять же, это должно
build.gradle
** Короче говоря, файл и манифест приложения build.gradle
должны иметь одинаковые конфигурации ** - В файле манифеста нет дубликатов, подобных тем же разрешениям, что и дважды.
- Если вы удалили какую-либо деятельность из своего проекта, удалите ее и из файла манифеста.
- Иногда его из-за метки, значка 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>
- Если две зависимости не совпадают с примером версии: вы используете зависимость для 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
Следующий хак работает:
- Добавьте строку
xmlns:tools="http://schemas.android.com/tools"
в тег манифеста - Добавьте
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"]
}
}