Ошибка слияния манифеста при использовании динамических функций и вариантов сборки - PullRequest
0 голосов
/ 09 июля 2019

С динамическими функциональными модулями в AndroidManifest.xml можно определить, должен ли модуль быть предустановленным:

<dist:module
    ...
    dist:onDemand="false"
    dist:title="@string/title_shop">
    ....
</dist:module>

или нет:

<dist:module
    ...
    dist:onDemand="true"
    dist:title="@string/title_shop">
    ....
</dist:module>

У меня есть двастроить ароматы в моем проекте.Модуль должен быть предварительно установлен в одном варианте, но не в другом.

Идея состоит в том, чтобы иметь это значение по умолчанию AndroidManifest.xml в наборе main исходного кода:

<dist:module
    ...
    dist:onDemand="true"
    dist:title="@string/title_shop">
    ....
</dist:module>

Для вариантов сборкимодуль должен быть предварительно установлен - я создаю файл AndroidManifest.xml, который переопределяет это свойство dist:onDemand на false:

<dist:module
    ...
    tools:replace="dist:onDemand"
    dist:onDemand="false"
    ...
</dist:module>

К сожалению, это не работает.Слияние манифеста завершается с ошибками:

Ошибки слияния: Ошибка: инструменты: заменить указано в строке: 11 для атрибута dist: onDemand, но не указано новое значение, магазинный манифест, строка 10 Ошибка: проверкане удалось выйти из манифеста магазина.

Кто-нибудь знает, что здесь не так?

1 Ответ

0 голосов
/ 09 июля 2019

Инструмент слияния манифеста объединяет все элементы XML из каждого файла, следуя некоторой эвристике слияния.Если инструмент слияния обнаружит, что оба манифеста содержат один и тот же атрибут с разными значениями, возникает конфликт слияния.

Документы: https://developer.android.com/studio/build/manifest-merge

...