Intereting Posts
Android и JUnit: как добавить отдельные тесты в тестовый набор? Переносимость мобильных платформ Android: TimerTask запланирован для повторного запуска только один раз Как вызвать функцию * после * onPreferenceChange? Android / Libgdx: обнаружение кнопки многозадачности Высота панели состояния? Обработка исключений (кросс-процессов) в пользовательском контенте Android Могут ли приложения Android 4.0 работать с устройствами Android 2.0 и Android 3.0? Android, ориентация только на пейзаж? Как вызвать щелчок или отправить событие при совместном использовании данных в других приложениях на Android? Видео как экран заставки вместо изображения Как создать новый проект Android в eclipse и поделиться им в локальном репозитории git? Как сохранить данные с камеры на диск с помощью MediaStore на Android? Java.lang.IllegalStateException: не удается выполнить это действие после onSaveInstanceState, FragmentTabHost Android Collapsing Toolbar не использует инерцию, например приложение Google Play.

Удаление элемента AndroidManifest с использованием продуктов с градиентом

Я настраиваю проект Android с несколькими продуктами. Я хотел бы иметь <uses-permission android:name="android.permission.INTERNET" /> во всех, кроме одного из моих вкусов. Я знаю, что можно иметь особый вкус, чтобы добавить разрешение, но возможно ли удалить его?

Единственное другое решение для этого, о котором я могу думать, это добавить <uses-permission android:name="android.permission.INTERNET" /> всем моим вкусам, кроме одного, что кажется довольно болезненным.

Согласно документам вы можете:

  1. Удалите разрешение с добавлением в ваш манифест что-то вроде этого: <permission android:name="permissionOne" tools:node="remove"/>

  2. И объявите отдельные части 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 merges проявляет так, вероятно, нет. Я решил подобную проблему (имена пакетов широковещательных приемников), удалив тег из основного манифеста и добавив его ко всем конкретным вкусам.