【问题标题】:Access buildConfigField from gradle in Android app从 Android 应用程序中的 gradle 访问 buildConfigField
【发布时间】:2017-02-23 22:26:36
【问题描述】:

我正在 Android Studio 中构建一个多应用项目,并使用 Gradle 进行版本控制。

我用

versionName "1.0"
versionCode 2
versionNameSuffix = ".alpha1"

我也用过

def getDate() {
    new Date().format('yyyyMMddHHmmss')
}

buildConfigField 'String', 'BUILD_DATE', '\"' + getDate() + '\"'

一切正常。

我可以通过代码访问那些

String vN = BuildConfig.versionName;
int vC = BuildConfig.versionCode;
String bD = BuildConfig.BUILD_DATE;

我遇到的一个问题是我有时需要从另一个应用程序访问这些信息。

我可以用

获取versionName和versionCode
PackageInfo pi = this.getPackageManager().getPackageInfo(packageName, 0);
String vN = pi.versionName;
int vC = pi.versionCode;

有没有办法从另一个应用程序访问 BUILD_DATE?

【问题讨论】:

    标签: android gradle android-buildconfig


    【解决方案1】:

    不容易。

    最简单的方法是从buildConfigField 切换到resValue,或者在buildConfigFieldresValue 中放入相同的getDate() 值。 resValue 将允许您使用日期定义字符串资源。然后,需要该值的应用程序可以使用getPackageManager().getResourcesForApplication() 获取一个Resources 对象,您可以从中读取字符串资源值。

    如果您的其余代码可以使用字符串资源,您可以从buildConfigField 切换到resValue。如果这样做不方便,那么在 BuildConfig 和字符串资源中同时包含构建日期将是少量数据重复,但恕我直言,这不是一个大问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-04
      • 1970-01-01
      • 2011-09-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多