Get android:versionName manifest element in code

AndroidAndroid Manifest

Android Problem Overview


I want to know how to parse the AndroidManifest.xml file in order to get the Application Version Number through code. android:versionName

Android Solutions


Solution 1 - Android

No need to parse the AndroidManifest.xml file for this.

You can get this by using:

try
{
	String app_ver = this.getPackageManager().getPackageInfo(this.getPackageName(), 0).versionName;
}
catch (NameNotFoundException e)
{
	Log.e(tag, e.getMessage());
}

Use this inside your onCreate() method.

Solution 2 - Android

In case this is helpful to anyone else, you can also access @string resources from AndroidManifest.xml like you can from other xml files.

So for example, in AndroidManifest.xml:

android:versionName="@string/app_versionName"

and in code:

string versionName = getResources().getString(R.string.app_versionName);

This way you don't need the (annoying, imo) try/catch statement. I'm not sure if this is an approved way of doing things, but it makes sense to me.

Solution 3 - Android

If you're using the Android Studio, the version name is available in the class BuildConfig. This class in generated at compile time:

String versionName = BuildConfig.VERSION_NAME;

This is the cleanest way retrieving the version name.

Solution 4 - Android

So far, i used the below code snippet from this article and successfully got the version code and version name from AndroidManifest.xml

/* Get android:versionName */
String versionName = getPackageManager().getPackageInfo(getPackageName(), 0).versionName;
 
/* Get android:versionCode */
int versionCode = getPackageManager().getPackageInfo(getPackageName(), 0).versionCode;

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionjenniferView Question on Stackoverflow
Solution 1 - AndroidVikas PatidarView Answer on Stackoverflow
Solution 2 - AndroidForeverWintrView Answer on Stackoverflow
Solution 3 - AndroidfuncoderView Answer on Stackoverflow
Solution 4 - AndroidCrisView Answer on Stackoverflow