Android 之 PackageManager获取的应用程序信息与AndroidManifest文件中设置的信息不一致问题

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

 

posted on 2017-10-11 10:49  Now,DayBreak  阅读(622)  评论(0编辑  收藏  举报