如何在多个应用程序通用的库中包含的方法中获取应用程序的 VERSION_NAME?

How can I get the VERSION_NAME of an application in a method included in a library common to several applications?

我开发了一个库来共享两个应用程序共有的代码。其中一种共享方法旨在显示应用程序的 VERSION_NAME。这个VERSION_NAME设置在每个应用程序的build.gradle文件中。当我在库方法的代码中使用 BuildConfig.VERSION_NAME 时,它 returns 库的版本名称。如何将变量集引用到应用程序 gradle 文件中?

您将无法使用 BuildConfig.VERSION_NAME,因为当您的库被编译时,消费应用程序的 BuildConfig 将不存在。

相反,您需要使用包管理器来查询当前应用程序的版本名称,如下所示:

public String getCurrentApplicationVersionName(Context context) {
    PackageManager packageManager = context.getPackageManager();
    PackageInfo info = packageManager.getPackageInfo(context.getPackageName(), 0);
    return info.versionName;
}