Android + gradle: diferentes metadatos manifiestos por sabor

Me gustaría definir un atributo de manifiesto meta-data diferente en función del sabor del producto. Yo traté de hacer esto,

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

El manifiesto main está completo, pero las versiones prod y dev son escasas y sólo contienen los metadatos,

 <?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> 

Es mi entendimiento que el sabor se manifiesta se fusionará con el principal. En mi build.gradle, lo hago,

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

Sin embargo, encontrar i tratar de construir "assembleProdDebug", tengo esto,

 * 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] 

Gracias.

En el archivo gradle, no es necesario definir la ruta del manifiesto.

utilizar:

 productFlavors{ prod {} dev{} } 

Compruebe que su estructura de directorios es correcta: un directorio con el nombre del sabor, para cada sabor, bajo el directorio src, y en cada dir, coloque el archivo de manifiesto que sobrepase.

Gradle fusionará los archivos.

PS: si la etiqueta de meta-datos está dentro de la etiqueta de la aplicación, también debe aplicar la etiqueta de la aplicación en el manifiesto principal.

  • Android: El uso de SVG en res lleva al error: "El nombre del archivo debe finalizar con .xml o .png"
  • Cómo evitar DEX 64K LIMIT importando la biblioteca correcta
  • Dagger 2 y Android Data Binding conflict
  • Cómo crear un Android Library Jar con gradle sin revelar públicamente el código fuente?
  • Android BuildConfig Campo que genera Cadena incorrectamente
  • Gradle, Android y la ubicación de ANDROID_HOME SDK
  • Compartir una biblioteca de Android entre varias aplicaciones de Android con Gradle
  • Cómo cambiar el nombre de apk usando gradle como este formato?
  • el ensamblaje del gradleRelease utiliza la llave / el certificado incorrectos
  • Cómo corregir la advertencia proguard 'no se puede encontrar el método de referencia' para los métodos existentes 'clonar' y 'finalizar' de la clase java.lang.Object
  • "No hay suficiente almacenamiento disponible para procesar este comando" - Gradle con complemento de Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.