如何在多个应用程序通用的库中包含的方法中获取应用程序的 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;
}
我开发了一个库来共享两个应用程序共有的代码。其中一种共享方法旨在显示应用程序的 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;
}