有时我们需要用 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 { //依赖 }