Tools replace android icon

Инструменты: заменить не замену в манифесте Android

Я использую проект gradle со многими различными библиотечными зависимостями и используя новое слияние манифеста. В моем теге я настроил его как таковой:

Но я получаю ошибку:

ОТВЕТЫ

Ответ 1

Объявите свой заголовок манифеста, как это

Затем вы можете добавить в свой тег приложения следующий атрибут:

Например, мне нужно заменить значок и метку. Удачи!

Ответ 2

Я исправил ту же проблему. Решение для меня:

  • добавьте строку xmlns:tools=»http://schemas.android.com/tools» в тег манифеста
  • добавить tools:replace=.. в тег манифеста
  • переместить android:label=. в тег манифеста

Ответ 3

Попробуйте переупорядочить ваши зависимости в файле gradle. Мне пришлось переместить библиотеку с нарушением списка вниз, а затем она сработала.

Ответ 4

Я просто испытал такое же поведение tools:replace=. , как описано OP.

Оказалось, что основная причина для tools:replace игнорируется манифестным слиянием — это ошибка, описанная здесь здесь. В основном это означает, что если в вашем проекте есть библиотека, содержащая манифест с node, содержащий атрибут tools:ignore=. , может случиться, что атрибут tools:replace=. в манифесте вашего основного модуля будет проигнорирован.

Трудная точка здесь в том, что она может, но не обязательно. В моем случае у меня были две библиотеки, библиотека A с атрибутом tools:ignore=. , библиотека B с атрибутами, которые должны быть заменены в соответствующих манифестях и атрибут tools:replace=. в манифесте основного модуля. Если манифест B слился в основной манифест перед манифестом A, все работало так, как ожидалось. В противоположном порядке слияния появляется ошибка.

Порядок, в котором происходят эти слияния, кажется несколько случайным. В моем случае изменение порядка в разделе зависимостей build.gradle не повлияло, но изменило название аромата.

Таким образом, единственное надежное обходное решение, похоже, состоит в том, чтобы распаковать проблему, вызывающую библиотеку, удалить тег tools:ignore=. (что не должно быть проблемой, поскольку это подсказка только для lint) и снова упаковать библиотеку.

И голосуйте за исправление ошибки, причины.

Ответ 5

Окончательное рабочее решение для меня (выделено значение в примере кода):

  • добавьте строку xmlns:tools в тег манифеста
  • добавить tools:replace в тег приложения

Ответ 6

Недостающий кусок для меня был такой:

Ответ 7

Вы можете заменить их в своем теге приложения Manifest:

и будет работать на вас.

Ответ 8

ФИКСИРОВАННЫЙ ИТ УДАЛИТЬ ОШИБКУ, Просто добавьте эти инструменты: replace = «android: icon, android: theme»

в тэг приложения в манифесте, он работает отлично,

Ответ 9

Вы можете заменить теги в теге Manifest application :

и будет работать для вас.

Объяснение

Использование такой зависимости/библиотеки в вашем файле gradle , который имеет эти метки в теге приложения Manifest, может вызвать эту проблему, и замена их в вашем Manifest является решением.

Ответ 10

Я получал похожую ошибку в проекте, который я импортировал:

Несколько записей с одним и тем же ключом: android: icon = ЗАМЕНА и инструменты: icon = ЗАМЕНА

Исправлено после изменения строки ниже в теге приложения:

Ответ 11

Я также прошел через эту проблему и изменил это:

Источник

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

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

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

Это моя сборка.Gradle в :

Это мой AndroidManifest :

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

21 ответов

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

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

Читайте также:  Лаунчер блэк раша андроид

вы можете просмотреть ошибку в правом colum, попробуйте решить эту ошибку.Это может помочь кому-то с той же проблемой.

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

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

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

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

  1. если две зависимости имеют разные версии пример: вы используете зависимость для appcompat v7: 26.0.0 и для facebook com.фейсбук.android: facebook-Android-sdk: [4,5) facebook использует cardview версии com.андроид.поддержка: cardview-v7: 25.3.1 и appcompat v7:26.0.0 использует cardview версии v7: 26.0.0, поэтому в двух библиотеках есть discripancy и, таким образом, дают ошибку

ошибка: не удалось выполнить задачу»: app: processDebugManifest».

ошибка слияния Манифеста: атрибут meta-data#android.поддержка.Версия@value value=(26.0.0-alpha1) из [com.андроид.поддержка: appcompat-v7: 26.0.0-alpha1] AndroidManifest.в XML:27:9-38 также присутствует в [com.андроид.поддержка: cardview-v7: 25.3.1] AndroidManifest.xml: 24: 9-31 value=(25.3.1). Предложение: добавить «tools: replace=» android: value «» в элемент на AndroidManifest.xml: 25: 5-27: 41 для переопределения.

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

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

для меня это работает —

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

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

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

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

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

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

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

обычно происходит, когда у вас есть ошибки в вашем манифесте.Открываем AndroidManifest.XML. Перейдите на вкладку объединенный манифест.Ошибки можно увидеть там .Также включите предложения, упомянутые там.Когда у меня была аналогичная проблема при импорте com.гуглить.андроид.СБМ.карты.модель.LatLng, он предложил мне включить инструменты: overrideLibrary= » com.гуглить.андроид.СБМ.карты » в теге приложения и сборка прошла успешно.

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

версия Android Studio 3.0.1

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

Источник

Android Manifest file merging

Each element in a manifest file can be identified by its element type (e.g. activity, intent-filter) and an optional key value. Some elements like “activity” must have a key since there can be multiple present in a single AndroidManifest.xml. Other elements like “application” do not require a key since there can be only one.

The element type and key value pair represent the identity of a manifest element.

The merging activity is always between two identically typed elements, one coming from a higher priority manifest file, one coming from a lower priority manifest file. Each merging activity has a default behavior that will be described subsequently. Also each default merging activity on the node or on a specific attribute can potentially be overridden by including tools specific markers.

The merging process will also record all decisions taken along the way for each node, described in the «Logging» section.

Elements and Attributes merging process

Implicit declarations

A number of attributes can have default values (defined in the online docs as defaults). When a higher priority element does not define an attribute which has a default value of X, if a lower priority element defines that very attribute with the same value X, it will still be added to the merged element (with value X of course) since it represents a clear choice from the library to not consider this value as the default value but the right value for the feature (in case the default ever changes).

Читайте также:  Что такое mvc android

Most attributes with default values will be ignored by the manifest merger if a lower priority attribute defines a value; it will be merged since there is no conflict between a default value and an attribute set to any value. The attribute will be set to that set value in the resulting merged element.

However, there are a few exceptions listed below:

Defaults to true. Merging with other attributes will use a OR merging policy since if any library requires the feature, the resulting application will require the feature.

Same as uses-feature:required.

The higher priority document’s version will be used but importing a library with a more recent version will generate an error.

Same as uses-sdk:minSdkVersion

Same as uses-sdk:minSdkVersion

Automatic upgrades

When importing a library with a lower target SDK than the project’s, it may be necessary to explicitly grant permissions (and perhaps make other changes) for the library to function properly in the later runtime. This will be performed automatically by the manifest merger.

Placeholder support

When an attribute value contains a placeholder (see format below), the manifest merger will swap this placeholder value with an injected value. Injected values are specified in the build.gradle.

The syntax for placeholder values is $ since @ is reserved for links. After the last file merging occurred, and before the resulting merged android manifest file is written out, all values with a placeholder will be swapped with injected values. A build breakage will be generated if a variable name is unknown.

The placeholder string can have a prefix and/or a suffix allowing to partially replace the value.

Источник

Инструменты: заменить не заменяя в файл манифеста Android

Я использую проекта Gradle с различными зависимостями библиотек, и с помощью нового манифеста слияния. В моем ` тег я установил его как таковой:

Но я получаю ошибку:

Объявить манифест заголовок такой

Затем можно добавить в тег приложения следующие атрибуты:

Например мне нужно заменить значок и метку. Удачи!

Я исправил же вопрос. Решение для меня:

  1. добавить префиксом xmlns:инструменты=»и http://schemas.android.com/tools» строки в манифесте таг
  2. добавить инструменты:заменить=..` в манифесте таг
  3. перемещение `для Android:метки= » . » в манифесте таг

Попробуйте переупорядочивания вашего зависимости в файл Gradle. Мне пришлось переехать нарушителя библиотека снизу списка к верху, а затем он работал.

Я просто испытал такое же поведение инструменты:заменить=. , как описано в ОП.

Оказалось, что первопричиной для инструмента:заменить игнорируются манифеста слияния ошибка, описанная [здесь][1]. Это означает, что если у вас есть библиотеки в ваш проект, содержащий манифест с узел, содержащий инструменты:игнорировать=. атрибут, может случиться так, что инструменты:заменить=. атрибут в манифесте основного модуля будут игнорироваться.

Хитрость здесь заключается в том, что он может бывает, но не обязательно. В моем случае у меня было две библиотеки, библиотеки с инструментами:игнорировать=. атрибут, библиотека б с атрибутами должны быть заменены в соответствующих манифестов и инструменты:заменить=. атрибут в манифесте главного модуля. Если манифест Б был влит в основную проявляется, прежде манифеста все работает, как ожидалось. В обратном порядке слияния появились ошибки.

Порядок, в котором эти слияния происходят, кажется несколько случайным. В моем случае изменение порядка в разделе зависимостей построить.Gradle в не было эффекта, но изменив имя на вкус это сделал.

Поэтому, единственный надежный обходной путь, кажется, распаковать проблемы, заставляющей библиотека, убрать инструменты:игнорировать=. ` тег (который должен быть не проблемой, это намек, только на что-нибудь вкусненькое) и упаковать снова в библиотеке.

Читайте также:  Андроид удаление писем без звука

И голосовать за ошибка будет исправлена, причины.

Источник

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

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

Попробовал добавить android:replace=»android:icon» к моему манифесту даже с моим значком.

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

Кажется, что это ошибка основного инструмента слияния для gradle.

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

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

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

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

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

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

в Manifest.xml :

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

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

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

Ответ shimi_tap достаточно.
Что нужно помнить, так это то, что вы выбираете только то, что вам нужно. Выберите из .
Я добавил tools:replace=»android:icon,android:theme» , он не работает. Я добавил tools:replace=»android:icon,android:theme,android:label,android:name» , он не работает. Он работает, когда я добавил tools:replace=»android:icon,android:theme,android:label» . Поэтому выясните, что именно конфликт в ваших файлах манифеста.

Просто добавьте xmlns:tools=»http://schemas.android.com/tools» к вашему тегу манифеста, а затем вам нужно добавить tools:replace=»android:icon» перед android:icon=»@mipmap/ic_launcher» .

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

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

просто получите ic_launcher и вставьте его в папку с вашими возможностями,

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

Очистите проект и перестройте

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

У меня возникла проблема с изменением значка от drawable до mipmap.

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

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

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

android: icon: @drawable/ic_launcher

Android: значок = “@мипмап/ic_launcher”

Если ничего не получится, закройте Android Studio. Перейдите в приложение /src/main, откройте файл AndroidManifest.xml в текстовом редакторе (например, возвышенное), удалите/замените строки erros, сохраните и заново откроете студию Android.

Когда значение атрибута содержит местозаполнитель (см. формат ниже), манифестное слияние будет заменять эту стоимость заполнитель с помощью инъекции стоимость. Инъекционные значения указаны в файле build.gradle. Синтаксис для значений placeholder – $, так как @зарезервирован для ссылок. После произошло последнее слияние файлов и до того, как они были объединены Файл манифеста android выписан, все значения с помощью заполнителя будут заменены введенными значениями. Поломка сборки будет если имя переменной неизвестно.

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

android <
useOldManifestMerger true
>

Для меня эта проблема возникла после обновления сервисов Google Play. Одна из библиотек, которые я использовал, включила эту библиотеку, используя “+” в своей градельной ссылке, например

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

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

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

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

в Manifest.xml :

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

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

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

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

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

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

Источник

Оцените статью