Referencia build.gradle atributo versionName en el diseño xml

Me gustaría tener un archivo de diseño que hace referencia al atributo versionName en mi archivo gradle:

 ... defaultConfig { applicationId "se.test.myapp" minSdkVersion 14 targetSdkVersion 22 versionCode 1 versionName "1.0" } .... 

Algo como

 <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/versionName" /> 

¿Hay un camino ordenado a esto, sin tener que configurar el diseño en mi código?

De acuerdo con http://tools.android.com/tech-docs/new-build-system puede crear recursos directamente desde gradle, por lo que poner

 android { ... defaultConfig { applicationId "se.test.myapp" minSdkVersion 14 targetSdkVersion 22 versionCode 1 versionName "1.0" } ... applicationVariants.all { variant -> variant.resValue "string", "versionName", variant.versionName } ... } 

En su build.gradle hará el truco

Crea el archivo de recursos generated.xml durante la compilación en la carpeta generated/res que se incluye junto con los recursos proporcionados por usted en la carpeta de valores. Así que puedes usar android:text="@string/versionName" para hacer referencia a este valor. Desafortunadamente, a veces IDE no puede resolver esta referencia, por lo que se verá como un error en su recurso de diseño (mientras que es una declaración válida y se resolverá en tiempo de ejecución)

Editar: Usted no debe usar Jack sólo para esto. Según el anuncio oficial de Jack es obsoleto (para todo, excepto las características de Java 8).

He utilizado un recurso de cadena:

 <resources> <string name="app_ver" translatable="false">1.0.2</string> ... </resources> 

En el build.gradle de la aplicación:

 android { compileSdkVersion 25 buildToolsVersion "25.0.2" defaultConfig { ... versionName "@string/app_ver" jackOptions { enabled true } } ... } 

Y así:

 <Preference android:title="Version" android:summary="@string/app_ver"/> 

Este proyecto en GitHub contiene una versión funcional de esto.

Creo que usted puede fijar el VersionName en su android manifest con un recurso de la secuencia, también. Me gusta esto:

AndroidManifest.xml

 android:versionName="@string/versionName" 

Su diseño xml

 android:text="@string/versionName" 

Pero no sé cómo esto es compatible con gradle.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.