有时我们需要用 PackageManager 来获取应用程序的版本号和版本名称等信息,通过以下代码来获取:

PackageManager manager = getPackageManager();
PackageInfo info = null;
try {
info = manager.getPackageInfo(getPackageName(), 0);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
String version = info.versionName;
int version_code = info.versionCode;

  但是最近在项目中使用发现取得的 version 和 version_code 与 AndroidManifest 文件中的版本不一致。项目是在下载的demo项目上优化改进的。

  问题原因:

  在 build.gradle 文件中也有版本号和版本名称等信息的设置,当 build.gradle 中的版本号与 AndroidManifest 文件中的版本号不一致,在代码中取得的版本号会取 build.gradle 中的版本号。

  问题解决:

  因此可以选择删去 build.gradle 文件中的相关设置,也可以将 build.gradle 文件中的相关设置与 AndroidManifest 文件中的相关设置一致化。

apply plugin: 'com.android.application'

android {
... defaultConfig {
applicationId "com.usr.blelibs"
minSdkVersion 21
targetSdkVersion 23
versionCode 1
versionName "1.0"
} ...
} dependencies {
//依赖
}
05-02 14:34