¿Cómo obtener el código de la versión del paquete de dependencia?

Estoy tratando de obtener el código de versión de un paquete compilado en un proyecto diferente, y vinculado como una dependencia en este. Hago cambios a ambos proyectos con frecuencia, así que me gusta saber los números de versión.

Las soluciones aquí: ¿Cómo obtener el número de versión / versión de su aplicación de Android? Muestra cómo obtener el código de la versión desde el contexto, pero que daría el código de la versión de los paquetes en el proyecto actual, no los dependientes.

Aquí está el código que he probado (3-Escenarios):

public static int getPackageVersion(Context context, Class<?> tClass) { int versionCode = 0; //#1) Get Package name from class String packageName = tClass.getPackage().getName(); //#2) Set Domain manually to top level package //String packageName = "com.somedomain"; //#3) Get package name from context from this package //String packageName = context.getPackageName(); Log.i(TAG, packageName); try { versionCode = context.getPackageManager().getPackageInfo( packageName, 0).versionCode; } catch (PackageManager.NameNotFoundException e) { Log.e(TAG, packageName); throw new RuntimeException(); } return versionCode; } 

# 1) Muestra cómo el método está destinado originalmente a funcionar, utiliza el nombre de paquete para la clase. Resultados en NameNotFound.

# 2) establecí manualmente el nombre de paquete de nivel superior para el paquete dependiente, que es similar a lo que devuelve context.getPackageName (). Resultados en NameNotFound.

# 3) Yo uso context.getPackageName (), y el código devuelve el código de versión de los paquetes en este proyecto – como se predijo, pero no el resultado que necesito.

Ya tengo un hack inelegante, sólo estoy almacenando el número de versión como un campo en una de las clases, pero una solución adecuada (si existe) sería grande.

One Solution collect form web for “¿Cómo obtener el código de la versión del paquete de dependencia?”

Una solución adecuada sería utilizar el archivo BuildConfig para almacenar dichos valores (para cada proyecto / subproyecto).
El complemento Android Gradle ya contiene estos campos:

 android { defaultConfig { versionCode 1 versionName "1.0.0" } } 

A continuación, obtenga el campo con your.package.name.BuildConfig.VERSION_NAME o your.package.name.BuildConfig.VERSION_CODE

  • El archivo de diseño de Android no permite caracteres como &, <,>
  • Excluyendo eclipse excluye en un script de hormigas
  • Manejadores de excepciones globales en Java
  • GSON esperaba BEGIN_ARRAY pero era BEGIN_OBJECT
  • Evitar que la actividad se recargue al acceder al menú de acción contextual haciendo clic en una imagen en la vista de cuadrícula asíncrona
  • Integración de ZbarScanner con la aplicación Android
  • Javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Ancla de confianza para la ruta de certificación no encontrada
  • Android Linkify - números de teléfono que se pueden hacer clic
  • Soporte de speex en android
  • La solicitud de servicio web no funciona en el navegador android android; Pero está trabajando en el navegador de PC
  • Firebase "Falta un constructor sin argumentos"
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.