我想知道如何解析AndroidManifest.xml文件,以便通过代码获取应用程序版本号。的 机器人:的versionName
答案 0 :(得分:144)
无需为此解析AndroidManifest.xml
文件。
您可以使用以下方式获取此信息:
try
{
String app_ver = this.getPackageManager().getPackageInfo(this.getPackageName(), 0).versionName;
}
catch (NameNotFoundException e)
{
Log.e(tag, e.getMessage());
}
在onCreate()
方法中使用此功能。
答案 1 :(得分:35)
如果这对其他人有帮助,您也可以从其他xml文件中访问AndroidManifest.xml中的@string
资源。
例如,在AndroidManifest.xml中:
android:versionName="@string/app_versionName"
并在代码中:
string versionName = getResources().getString(R.string.app_versionName);
这样你就不需要(恼人的,imo)try / catch语句。我不确定这是否是一种经过批准的做事方式,但这对我来说很有意义。
答案 2 :(得分:8)
如果您使用的是Android Studio,则可以在 BuildConfig 类中找到版本名称。这个类在编译时生成:
String versionName = BuildConfig.VERSION_NAME;
这是检索版本名称最简洁的方法。
答案 3 :(得分:2)
到目前为止,我使用了this文章中的以下代码段,并成功获得了来自AndroidManifest.xml
的版本代码和版本名称
/* Get android:versionName */
String versionName = getPackageManager().getPackageInfo(getPackageName(), 0).versionName;
/* Get android:versionCode */
int versionCode = getPackageManager().getPackageInfo(getPackageName(), 0).versionCode;