Удаление элемента AndroidManifest со вкусом продукта Gradle
Я настраиваю проект Gradle для Android с несколькими вариантами продуктов. Я хотел бы иметь <uses-permission android:name="android.permission.INTERNET" />
разрешение во всех, кроме одного из моих вкусов. Я знаю, что можно добавить конкретный аромат, чтобы добавить разрешение, но возможно ли удалить аромат?
Единственное другое решение, которое я могу придумать, это добавить <uses-permission android:name="android.permission.INTERNET" />
разрешение на все мои ароматы, кроме той, которая кажется довольно болезненной.
3 ответа
Согласно документам вы можете:
удалить разрешение с добавлением в ваш манифест что-то вроде этого
<permission android:name="permissionOne" tools:node="remove"/>
и объявить отдельные части AndroidManifest.xml для каждого аромата в
src/myFlavor/AndroidManifest.xml
который будет объединен с этим основным AndroidManifest.xml
Я знаю, что это старый, но теперь есть новый атрибут под названием tools:node="remove"
это позволяет вам удалить тег из манифеста.
Объявите заголовок вашего манифеста следующим образом:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
Также вы должны добавить свой тег так:
<uses-permission android:name="android.permission.INTERNET" tools:node="remove" />
Я надеюсь, что это помогает другим.
Источник: ЗДЕСЬ
Также Android документация: ЗДЕСЬ
РЕДАКТИРОВАТЬ:
Отредактировал ответ, чтобы соответствовать новым изменениям API. Спасибо Мартину Л. за его комментарий
Gradle сливается так, что, вероятно, нет. Я решил похожую проблему (имена пакетов получателей широковещательной рассылки), удалив тег из основного манифеста и добавив его ко всем конкретным вариантам.