configurar - update gradle android studio
Gradle "manifiesta requiere una sustituciĆ³n de marcador de posiciĆ³n" error pero manifestPlaceholders proporciona un valor (3)
Estoy tratando de realizar una sustitución dentro del archivo AndroidManifest.xml de la extensión build.gradle de Android, pero estoy obteniendo 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 recorte 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 intenté agregar el 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 respecto que requiere una sustitución de marcador de posición cuando se proporciona uno en el manifestPlaceholders?
Solo necesita agregar a la matriz. Lo estás reemplazando. Hacer esto:
manifestPlaceholders = [encoding: "some value", version: cityVersion]
Al declarar manifestPlaceholders dos veces para el mismo tipo de sabor / compilación, está reemplazando el anterior. Después de que se reemplazó la anterior, su compilación falló porque la propiedad ya no existe.
Necesita agregar el marcador de posición applicationId al gradle de la 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"
...
}
}
Ver: no se puede obtener el proveedor com.google.firebase.provider.FirebaseInitProvider
Había dejado los símbolos $ {} alrededor de mi valor:
<meta-data android:name="net.example" android:value="${XXXX}" />