2

我想在我的spalsh屏幕上显示位于android清单中的versionName(数字)。我找到了一些示例代码,但它们不起作用。这似乎是一个简单的任务,但它不显示给我

来自初始 xml 的文本视图:

   <TextView
        android:id="@+id/ver_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_marginBottom="33dp"
        android:layout_marginRight="30dp"
        android:text=" " />

显示方法:

    private void displayVersionName() {
    String versionName = "";
    PackageInfo packageInfo;
    try {
        packageInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
        versionName = "ver:" + packageInfo.versionName;
    } catch (NameNotFoundException e) {
        e.printStackTrace();
    }
    TextView tv = (TextView) findViewById(R.id.ver_name);
    tv.setText(versionName);
  }
4

3 回答 3

8

也许NameNotFoundException会被抛出?或者当您显示版本字符串时可能会发生一些事情?

无论如何,我和你完全一样,它对我有用。您可以使用以下代码验证 getVersionInfo 返回的内容,然后才尝试显示它

public String getVersionInfo() {
        String strVersion = "Version:";

        PackageInfo packageInfo;
        try {
            packageInfo = getApplicationContext()
                .getPackageManager()
                .getPackageInfo(
                    getApplicationContext().getPackageName(), 
                    0
                );
            strVersion += packageInfo.versionName;
        } catch (NameNotFoundException e) {
            strVersion += "Unknown";
        }

        return strVersion;
    }
于 2012-12-07T16:18:59.057 回答
1

尝试这个 :

 TextView tv = (TextView) findViewById(R.id.ver_name);
 tv.setText("version : " + BuildConfig.VERSION_NAME);

并导入BuildConfig您想要 versionName 的包:

import com.yourpackage.BuildConfig;
于 2017-03-29T12:46:16.573 回答
0

更改您的代码以使用代码获取您的应用程序版本名称

    private void displayVersionName() {
    String verName = "";
    try {
        verName = "ver:" + Current_Activity.this.getPackageManager().
                            "YOUR_APPLICATION_PACKAGE_NAME", 0).versionName;  
    } catch (NameNotFoundException e) {
        e.printStackTrace();
    }
    TextView tv = (TextView) findViewById(R.id.ver_name);
    tv.setText(verName);
  }
于 2012-12-07T16:17:34.250 回答