代码从清单中提取错误的versionName

时间:2014-12-07 06:31:27

标签: android version manifest

好的,我从清单中读取了几个关于获取versionName的线程,就像在About对话框中使用一样。注意到两种技术。我做到了两种方式,都提出了1.0版,这不是我在清单中所拥有的。我找不到任何发现同样问题的帖子。我在Android Studio工作。

清单中的行:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.wabner.awesome_app"
    android:versionCode="23"
    android:versionName="0.70b">

    <uses-permission android:name="android.permission.INTERNET" />

关于DialogFragment的行:

Context c = getActivity().getApplicationContext();
String versionName = "";

try {
    versionName = c.getPackageManager().getPackageInfo(c.getPackageName(), 0).versionName;
} catch (PackageManager.NameNotFoundException e) {
    e.printStackTrace();
}

TextView tv1 = (TextView) view.findViewById(R.id.version_number);
tv1.setText(versionName);

或者,更简单的方法:

TextView tv1 = (TextView) view.findViewById(R.id.version_number);
tv1.setText(BuildConfig.VERSION_NAME);

我可能错过了一些明显的东西,但是,我是Android的新手。累了。睡觉......

几分钟后......如果应用程序打包发布,是否可以访问版本号?

1 个答案:

答案 0 :(得分:10)

如果您正在使用gradle构建系统,那么来自清单的versionCode和versionName字段将被build.gradle中的值覆盖。 所以,转到module的build.gradle,更改versionCode / versionName,它必须看起来像

android {
    ...
    defaultConfig {
        ...
        versionCode 23
        versionName '0.70b'
    }
    ...
}

您可以使用您提到的第一种方式检查