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