如何获取Android应用程序的构建版本号?

问题

我需要弄清楚如何为我的Android应用程序获取或制作内部版本号。我需要在UI中显示内部版本号。

我是否必须使用AndroidManifest.xml做点什么?


#1 热门回答(1770 赞)

使用:

try {
    PackageInfo pInfo = this.getPackageManager().getPackageInfo(getPackageName(), 0);
    String version = pInfo.versionName;
} catch (PackageManager.NameNotFoundException e) {
    e.printStackTrace();
}

你可以使用此方法获取版本代码

int verCode = pInfo.versionCode;

#2 热门回答(1431 赞)

如果你使用的是Gradle插件/ Android Studio,as of version 0.7.0,版本代码和版本名称可以在BuildConfig中静态使用。请确保导入应用程序的包,而不是另一个BuildConfig

import com.yourpackage.BuildConfig;
...
int versionCode = BuildConfig.VERSION_CODE;
String versionName = BuildConfig.VERSION_NAME;

不需要Context对象!

还要确保在build.gradle文件中指定它们而不是AndroidManifest.xml

defaultConfig {
    versionCode 1
    versionName "1.0"
}

#3 热门回答(400 赞)

如果你只想要版本名称,则稍微缩短版本。

String versionName = context.getPackageManager()
    .getPackageInfo(context.getPackageName(), 0).versionName;