Necesito descubrir cómo obtener o crear un número de compilación para mi aplicación de Android. Necesito el número de compilación para mostrar en la interfaz de usuario.
¿Tengo que hacer algo con AndroidManifest.xml
?
android
android-emulator
android-manifest
Fahad Ali Shaikh
fuente
fuente
int versionCode = BuildConfig.VERSION_CODE;
y para obtener el nombre de la versiónString versionName = BuildConfig.VERSION_NAME;
Respuestas:
Utilizar:
Y puede obtener el código de versión usando esto
fuente
try... catch..
cuándogetPackageInfo()
BuildConfig.VERSION_**
como se sugiere aquí .Si está utilizando el complemento Gradle / Android Studio, a partir de la versión 0.7.0 , el código y el nombre de la versión están disponibles estáticamente en
BuildConfig
. Asegúrese de importar el paquete de su aplicación , y no otroBuildConfig
:¡No se necesita ningún objeto de contexto!
También asegúrese de especificarlos en su
build.gradle
archivo en lugar deAndroidManifest.xml
.fuente
versionName
para su aplicación en subuild.gradle
archivo.import com.yourapppackage.android.BuildConfig
Versión un poco más corta si solo quieres el nombre de la versión.
fuente
Hay dos partes que necesita: android: versionCode android: versionName
versionCode es un número, y cada versión de la aplicación que envíe al Market debe tener un número mayor que el anterior.
VersionName es una cadena y puede ser lo que quieras que sea. Aquí es donde define su aplicación como "1.0" o "2.5" o "2 Alpha EXTREME". o lo que sea.
Ejemplo:
Kotlin:
Java:
fuente
android:versionCode
yandroid:versionName
se puede encontrar aquí: developer.android.com/tools/publishing/...this.getPackageName()
representa lo0
que acaba de escupir no tiene idea sobre el significadoUsando Gradle y BuildConfig
Obteniendo el VERSION_NAME de BuildConfig
Sí, es así de fácil ahora.
¿Devuelve una cadena vacía para VERSION_NAME?
Si está obteniendo una cadena vacía para seguir
BuildConfig.VERSION_NAME
leyendo.Seguí obteniendo una cadena vacía
BuildConfig.VERSION_NAME
porque no estaba configurandoversionName
en mi archivo de compilación de Grade (migré de ANT a Gradle). Entonces, aquí hay instrucciones para asegurarse de que está configurando suVERSION_NAME
vía Gradle.build.gradle
Nota: Esto es del magistral Jake Wharton .
Eliminar
versionName
yversionCode
deAndroidManifest.xml
Y dado que ha configurado el
versionName
yversionCode
en elbuild.gradle
archivo ahora, también puede eliminarlos de suAndroidManifest.xml
archivo, si están allí.fuente
versionName "1.2"
, yBuildConfig.VERSION_NAME
regresoempty
. API> 21versionCode
yversionName
, respectivamente. Solo porque algunas herramientas como Code Push intentan obtener su número de versión analizando subuild.gradle
archivo y no pueden completar un valor dinámico.Aquí hay una solución limpia , basada en la solución de scottyab (editado por Xavi). Muestra cómo obtener el contexto primero, si su método no lo proporciona. Además, utiliza varias líneas en lugar de llamar a varios métodos por línea. Esto lo hace más fácil cuando tiene que depurar su aplicación.
Ahora que recibió el nombre de la versión en la Cadena
myVersionName
, puede establecerlo en TextView o lo que quiera.fuente
Throws PackageManager.NameNotFoundException if a package with the given name can not be found on the system.
. Sin embargo, ¡no podría imaginarme un escenario para eso!Para obtener la versión de la aplicación o el código de compilación que se utiliza para identificar el apk por su código de versión. El código de versión se utiliza para detectar la configuración de compilación real en el momento de la actualización, publicación, etc.
El nombre de la versión se usa para mostrar a los usuarios o desarrolladores de la secuencia de desarrollo. Puede agregar cualquier tipo de nombre de versión que desee
fuente
Use la clase BuildConfig
build.gradle (aplicación)
fuente
Si está utilizando PhoneGap, cree un complemento PhoneGap personalizado:
Crea una nueva clase en el paquete de tu aplicación:
En plugins.xml, agregue la siguiente línea:
En su evento de dispositivo listo , agregue el siguiente código:
Luego, puede obtener el atributo versionName haciendo:
Derivado de aquí y de aquí .
fuente
Kotlin one-liners
Asegúrate de importar
BuildConfig
a tu clasefuente
Para usuarios de xamarin, use este código para obtener el nombre y el código de la versión
1) Nombre de la versión:
2) Código de versión:
fuente
Si desea usarlo en xml, agregue la siguiente línea en su archivo gradle:
Y luego úsalo en tu xml así:
fuente
No, no necesitas hacer nada con AndroidManifest.xml
Básicamente, el nombre y el código de la versión de su aplicación dentro del archivo gradle de nivel de aplicación , bajo la etiqueta de configuración predeterminada :
Nota: Cuando desee cargar la aplicación en la tienda de juegos, puede dar cualquier nombre como nombre de la versión, pero el código de la versión debe ser diferente del código de la versión actual si esta aplicación ya está en Play Store.
Simplemente use el siguiente fragmento de código para obtener el código y el nombre de la versión desde cualquier lugar de su aplicación:
fuente
para Api 28, PackageInfo.versionCode está en desuso, así que use este código a continuación:
fuente
Hazlo siempre con
try catch
bloque:fuente
Aquí está el método para obtener el código de versión:
fuente
He RESUELTO esto usando la clase de preferencia.
fuente
Hay algunas formas de obtener
versionCode
y medianteversionName
programación.PackageManager
. Esta es la mejor manera para la mayoría de los casos.BuildConfig.java
. Pero tenga en cuenta que si accede a estos valores en la biblioteca, devolverá la versión de la biblioteca, no las aplicaciones, que usa esta biblioteca. ¡ Úselo solo en proyectos que no sean de biblioteca!Hay algunos detalles, excepto el uso de la segunda vía en el proyecto de biblioteca. En el nuevo complemento de Android Gradle (3.0.0+) algunos eliminaron funcionalidades . Entonces, por ahora, es decir, configurar diferentes versiones para diferentes sabores no funciona correctamente.
Forma incorrecta:
El código anterior establecerá correctamente los valores
BuildConfig
, peroPackageManager
recibirá0
ynull
si no configuraste la versión en ladefault
configuración. Entonces su aplicación tendrá un0
código de versión en el dispositivo.Hay una solución alternativa: establecer la versión para el
apk
archivo de salida manualmente:fuente
Este código se mencionó anteriormente en partes, pero aquí está nuevamente incluido. Necesita un bloque try / catch porque puede arrojar una "NameNotFoundException".
Espero que esto simplifique las cosas para alguien en el futuro. :)
fuente
Sin embargo, alguien que no necesita la información de BuildConfig para la interfaz de usuario de la aplicación quiere usar esta información para establecer una configuración de trabajo de CI u otras, como yo.
Hay un archivo generado automáticamente, BuildConfig.java, en el directorio de su proyecto, siempre que construya su proyecto con éxito.
{ESPACIO DE TRABAJO} / build / generado / source / buildConfig / {debug | release} / {PACKAGE} /BuildConfig.java
Divida la información que necesita por script de Python u otras herramientas. Aquí hay un ejemplo:
Disculpe mi limitada capacidad de inglés, pero espero que esto ayude.
fuente
fuente
prueba este:
fuente
Primero:
y luego usa esto:
fuente
fuente
Ejemplo para uso interno de Fragment.
fuente
Ejemplo de Kotlin:
No agradezcas :-)
fuente
fuente
Como tenía que obtener solo el código de versión y verificar si la aplicación está actualizada o no, en caso afirmativo, tuve que iniciar la tienda de juegos para actualizarla. Lo hice de esta manera.
Luego guardé el código de versión usando preferencia compartida creando una clase util.
fuente
Como en 2020: API 28 "versionCode" está en desuso, por lo que podemos usar "longVersionCode"
Código de muestra en kotlin
fuente
Útil para los sistemas de compilación: hay un archivo generado con su apk llamado
output.json
que contiene una matriz de información para cada APK generado, incluidos versionName y versionCode.p.ej
fuente