it-swarm.com.ru

Android значок Gradle значок ошибки, манифест слияния

Я продолжаю видеть это сообщение и не уверен, как решить это навсегда.

Error:(43, 9) Attribute [email protected] 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

Попытался добавить Android:replace="Android:icon" в мой манифест даже с моей иконкой.

Я пытался удалить Android:icon="@drawable/ic_launcher из библиотеки, но он продолжает возвращаться при сборке, потому что он импортирован из maven

Есть идеи ?

133
shimi_tap

Кажется, это вина основного инструмента Merger для Gradle.

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

Решил это, добавив в мой манифест тег xmlns:tools="http://schemas.Android.com/tools"

Затем добавил tools:replace="Android:icon,Android:theme" в тег приложения

Это говорит слиянию использовать мою иконку манифеста и тему, а не другие библиотеки 

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

328
shimi_tap

У меня та же проблема, я исправляю это так, добавив xmlns:tools="http://schemas.Android.com/tools" в начало файла mainfest и добавив tools:replace="Android:icon", чтобы он выглядел как 

<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>
50
Mina Fawzy

у меня та же ошибка, только этот код решает мою проблему, я хочу поделиться с вами:

вManifest.xml:

  • добавить этот код в верхней части вашего XML-файла:

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

  • Затем добавил:

    tools:replace="Android:icon,Android:theme,Android:label,Android:name" к тегу приложения

9
Adnan Abdollah Zaki

Ответа shimi_tap достаточно . Следует помнить, что нужно выбирать только то, что вам нужно. Выберите из {icon, name, theme, label} . Я добавил tools:replace="Android:icon,Android:theme", он не работает. Я добавил tools:replace="Android:icon,Android:theme,Android:label,Android:name", он не работает. Это работает, когда я добавил tools:replace="Android:icon,Android:theme,Android:label". Так что выясните, что именно конфликт в ваших файлах манифеста.

9
黄锐铭

Просто добавьте xmlns:tools="http://schemas.Android.com/tools" к вашему тегу манифеста. И тогда вам нужно добавить tools:replace="Android:icon"_BEFORE_Android:icon="@mipmap/ic_launcher". Удачи! : D

3
Ilya Cucumber

Эта ошибка также возникает, когда minSdk вашего приложения выше, чем minSdk любой библиотеки.

app's minSdk >= libraries minSdk
3
Hisham Muneer

ПОЛУЧИЛ РЕШЕНИЕ ПОСЛЕ ТОГО, ЧТО ХОЧЕТ ВРЕМЯ

просто получите ваш ic_launcher и вставьте его в папку drawables,

Перейдите в манифест и измените Android: icon = "@ drawable/ic_launcher"

Очистите ваш проект и восстановите

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

2
Ismael ozil

У меня была эта проблема при смене иконки с нарисованного на mipmap.

Я только пропустил линию

tools:replace="Android:icon"

в манифесте.

2
Alecs

По какой-то причине Android Studio не нравится вызывать значок приложения из папки для рисования. Поэтому в этом случае я создал каталог ресурсов mipmap в папке res. 

Щелкните правой кнопкой мыши по папке res> new> Каталог ресурсов Android> Тип ресурса: mipmap и теперь перетащите туда любой значок, затем укажите его в файле манифеста. Поделиться этим, так как этот метод работал для меня.

Android: значок: @ drawable/ic_launcher " 

в 

Android: icon = "@ mipmap/ic_launcher"

1
Alex

Если ничего из этого не работает, закройте Android Studio. Перейдите в app/src/main, откройте файл AndroidManifest.xml в текстовом редакторе (например, sublime), удалите/замените строки с ошибками, сохраните и снова откройте Android studio.

1
Ricardo Mutti

Когда значение атрибута содержит заполнитель (см. Формат ниже), Манифест слияния заменит это значение заполнителя с введенным значение. Введенные значения указываются в build.gradle. Синтаксис для значений заполнителей - $ {name}, поскольку @ зарезервировано для ссылок. После произошло последнее слияние файлов, и до слияния Файл манифеста Android записан, все значения с заполнителем будет поменяться местами с введенными значениями. Обрыв сборки будет генерируется, если имя переменной неизвестно.

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

1
Shixin Zhang

Я перепробовал все решения, упомянутые выше 

вManifest.xml:

  • добавьте этот код в начало вашего XML-файла в теге manifest:

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

  • Затем добавил:

    tools:replace="Android:icon,Android:theme,Android:label,Android:name" к тегу приложения

но ничего из этого не сработало. Мне нужно было удалить файл XML, который находился в

мипмап-anydpi-V26/ic_launcher_round.xml

Я тестировал приложение в

Samsung Galaxy 8 с версией ОС 8.0.0

это действительно решение?

0
surhidamatya

В вашем .gradle измените MinSDK, например:

  • build.gradle (Модуль: приложение)
    • до: minSdkVersion 9
    • после: minSdkVersion 14 

и т.п.

0
Briliant Fay

Ответ Shimi_tap - верный способ решить проблему. Если вы хотите использовать старый инструмент слияния, вы можете добавить это в файл build.gradle

Android { useOldManifestMerger true }

0
San

в Manifest.xml:

coplete tools: replace = "Android: appComponentFactory"> как это

tools:replace="tools:replace="Android:appComponentFactory,Android:icon,Android:theme,Android:label,Android:name" to the application tag
0
Messou

Для меня эта проблема возникла после обновления Сервисов Google Play. Одна из библиотек, которую я использовал, включила эту библиотеку, используя «+» в своем справочнике, например 

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

Это создало проблему, поскольку минимальная версия, на которую была нацелена эта библиотека, была меньше, чем та, на которую нацелена текущая версия Сервисов Google Play. Я нашел это, просто просматривая журналы. 

0
Rarw