Android + gradle: разные метаданные манифеста

Я хотел бы определить другой атрибут манифест meta-data зависимости от вкуса продукта. Я пытался это сделать,

 src/ main/ AndroidManifest.xml prod/ AndroidManifest.xml dev/ AndroidManifest.xml 

main манифест завершен, но версии prod и dev редки и содержат только метаданные,

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.inventory" android:versionCode="1" android:versionName="1.0"> <meta-data android:name="analytics" android:value="true"/> </manifest> ? <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.inventory" android:versionCode="1" android:versionName="1.0"> <meta-data android:name="analytics" android:value="true"/> </manifest> 

Я понимаю, что проявления вкуса сольются с основным. В моем build.gradle, я делаю,

 android { productFlavors { prod { manifest.srcFile "prod/AndroidManifest.xml" } dev { manifest.srcFile "dev/AndroidManifest.xml" } } ... } 

Однако, найти, я пытаюсь построить «assembleProdDebug», я получаю это,

 * What went wrong: A problem occurred evaluating project ':Inventory'. > No signature of method: org.gradle.api.java.archives.internal.DefaultManifest.srcFile() is applicable for argument types: (java.lang.String) values: [prod/AndroidManifest.xml] 

Благодарю.

Solutions Collecting From Web of "Android + gradle: разные метаданные манифеста"

В вашем файле gradle вам не нужно определять путь к манифесту.

использовать:

 productFlavors{ prod {} dev{} } 

Убедитесь, что ваша структура каталогов верна: каталог с названием аромата для каждого аромата в директории src и в каждом каталоге помещает файл переопределения манифеста.

Gradle объединит файлы.

PS – если тэг метаданных находится внутри тега приложения, вы также должны применить тег приложения в переопределяющем манифесте.