Отключить манифестное слияние в Android Gradle Build
Я использую новую систему buildroid.
Проект состоит из двух андроидных библиотечных проектов и одного основного проекта.
Используя сборку ant, манифестное слияние должно быть включено в project.properties. Но при использовании системы построения gradleиента слияние манифеста включено по умолчанию. Как я могу отключить манифестное слияние?
- Запуск задачи перед компиляцией с помощью Android Gradle plugin
- Как определить различные зависимости для разных продуктов
Изменить: это возможно, хотя и косвенно, начиная с 0,3
Что вам нужно сделать, так это отключить задачу processManifest, чтобы она не запускалась и не говорила processResources, где используется манифест:
android.applicationVariants.all { variant -> variant.processResources.manifestFile = file('src/main/AndroidManifest.xml') variant.processManifest.enabled=false }
Обратите внимание: если вы настраиваете имя пакета приложения через DSL, вы должны оставить в нем значение по умолчанию, не затронутое по умолчанию, чтобы обеспечить согласованное имя пакета для classов R, а затем добавить свои манифесты вручную в другое место и указать каждый вариант processResources задача им.
Это может помочь.
android.applicationVariants.all{ variant -> variant.outputs.each { output -> output.processResources.manifestFile = file('AndroidManifest.xml') output.processManifest.enabled=false } }
Для плагина 0.6. + Вам также нужно перейти от buildVariants
к applicationVariants
:
android.applicationVariants.all { variant -> variant.processResources.manifestFile = file('src/main/AndroidManifest.xml') variant.processManifest.enabled=false }
Это не похоже на то, что эти решения работают для плагина 1.0:
Не удалось найти свойство «processResources» на com.and[email protected]774f1d0b.
У кого-нибудь есть обновление? Наша проблема – это бродячая деятельность, проявляющаяся в последнем apk из recyclerview-v7: 21.0.3:
Обновление: похоже, может быть настроено слияние манифеста (см. http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger ). В этом конкретном случае TestActivity, выходящий из библиотеки recyclerview-v7, можно удалить с помощью:
Спасибо, Филипп .
Для плагина 0.5. + Вам нужно изменить each
из each
на all
:
android.buildVariants.all { variant -> variant.processResources.manifestFile = file('src/main/AndroidManifest.xml') variant.processManifest.enabled=false }