Gradle "manifiesto requiere un sustituto de posición" error, pero manifestPlaceholders suministra un valor

Estoy intentando realizar la substitución dentro del archivo de AndroidManifest.xml de la extensión android de build.gradle pero estoy consiguiendo este error:

AndroidManifest.xml:89:16 Error: Attribute uses-library#com.company.platform.${encoding}@name at AndroidManifest.xml:89:16 requires a placeholder substitution but no value for <encoding> is provided. /Users/Company/Desktop/Checkout/android/Project/app/src/main/AndroidManifest.xml:0:0 Error: Validation failed, exiting :app:processDebugManifest FAILED 

Este es un fragmento del archivo de manifiesto:

 ... </receiver> <uses-library android:name="com.company.platform.${encoding}" /> </application> ... 

Y este es un snipped de la build.gradle:

 android { compileSdkVersion 23 buildToolsVersion "23.0.1" defaultConfig { applicationId "com.company.app" minSdkVersion 23 targetSdkVersion 23 versionName cityVersion setProperty("archivesBaseName", "City_$versionName") manifestPlaceholders = [encoding: "some value"] manifestPlaceholders = [version: cityVersion] } 

También he intentado agregar el manifestPlaceholders en el buildTypes es decir

 buildTypes { release { minifyEnabled true shrinkResources true manifestPlaceholders = [encoding: deviceEncoding] manifestPlaceholders = [version: cityIDVersion] } debug { manifestPlaceholders = [encoding: deviceEncoding] manifestPlaceholders = [version: cityIDVersion] } 

}

Pero sigo recibiendo el mismo error.

¿Por qué hay un error al requerir una sustitución de marcador de posición cuando se proporciona uno en los manifestPlaceholders?

2 Solutions collect form web for “Gradle "manifiesto requiere un sustituto de posición" error, pero manifestPlaceholders suministra un valor”

Sólo tiene que añadir a la matriz. Usted lo está reemplazando. Hacer esto:

 manifestPlaceholders = [encoding: "some value", version: cityVersion] 

Declarando manifestPlaceholders dos veces para el mismo sabor / tipo de compilación, está reemplazando el anterior. Después de reemplazado el anterior, su compilación falló porque la propiedad ya no existe.

Debe agregar el marcador de posición applicationId al gradle de aplicación. Esto sucede con la integración de Firebase, después de actualizar a Gradle 2.2.0-alpha1

 android { ... defaultConfig { applicationId "com.example.my.app" ... } } 

Consulte: No se puede obtener el proveedor com.google.firebase.provider.FirebaseInitProvider

  • Cómo utilizar artifactoryPublish para publicar artefactos de liberación y depuración
  • Estudio de Android importando en edición de gradle
  • Dependencia del módulo - Android Studio
  • "Aapt" IOException error = 2, No hay tal archivo o directorio "¿por qué no puedo construir mi gradle en jenkins?
  • Android Studio es increíblemente lento y laggy
  • Variante de varios estilos de Android Gradle
  • Fusión de manifiesto de Gradle de Android: reemplaza el atributo 'uses-permission' procedente de una biblioteca
  • Biblioteca ya agregada: Gradle Build
  • Gradle connectedAndroidTest devuelve "No se encontró ninguna prueba", sin embargo, el shell adb shell puede encontrar las pruebas
  • Gradle versión 1.10 es necesario. La versión actual es 2.2.1. En android
  • Gradle crea y despliega tipo de compilación específico
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.