android - tools - Gradle resValue produce recursos de cadena duplicados
install gradle android studio (2)
Mi archivo de manifiesto de Android define el nombre de la aplicación de la siguiente manera:
android:label="@string/app_name"
Existe una entrada correspondiente para nombre_aplicación en res / values / strings.xml
Ahora, en mi build.gradle, redefino el nombre de la aplicación para la versión beta de la siguiente manera:
buildTypes {
beta {
applicationIdSuffix ".beta"
debuggable true
resValue "string", "app_name", "MyTest Beta"
}
}
Sin embargo, cuando ensamblo el paquete, Gradle se queja de un recurso de cadena duplicado.
Simplemente podría eliminar el token app_name de string.xml. Sin embargo, en ese caso, Android Studio informa un problema con el archivo de manifiesto.
¿Cómo puedo solucionar esto? Saludos.
Me encontré con el mismo problema también. Mi solución es usar Manifest-placeholder
.
<application
android:label="${APP_NAME}"
tools:replace="android:label">
En su cierre defaultConfig
, configure el valor
defaultConfig {
addManifestPlaceholders([APP_NAME: "@string/app_name"])
}
Y cambia ese valor en tus sabores.
buildTypes {
beta {
applicationIdSuffix ".beta"
debuggable true
addManifestPlaceholders([APP_NAME: "MyTest Beta"])
}
}
Retirarse:
- HardCode appName en el sabor. (que puede o no ser un trato)
Para solucionar ese inconveniente, puede combinar Manifest-placeholder
y resValue
, que es crear un recurso usar resValue
y cambiar android:label
a su recurso.
No debería tener que meterse con un ''resValue''. Puede usar el conjunto de orígenes de depuración que le permitirá redefinir otras cadenas en depuración también. Cree el siguiente archivo y redefina la cadena ''app_name'' allí.
src/debug/res/values/strings.xml
Solo asegúrate de no tener nada parecido a lo siguiente en tus buildScreen de build.gradle
debug.setRoot(''build-types/debug'')