El error "manifiesto requiere una sustitución de marcador de posición", pero manifestPlaceholders proporciona un valor

Estoy tratando de realizar una sustitución dentro del archivo AndroidManifest.xml de la extensión de Android build.gradle, pero recibo 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 esto es un fragmento de 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 los manifestPlaceholders en buildTypes, es decir

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

}

Pero sigo teniendo el mismo error.

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

Respuestas a la pregunta(4)

Su respuesta a la pregunta