Gradle不生成带引号的String

Mat*_*rlé 8 groovy android gradle

我正在尝试BuildConfig使用此函数包含自定义字段来包含构建日期:

def getDate() {
    def date = new Date()
    def formattedDate = date.format('yyyyMMddHHmmss')
    return formattedDate
}
Run Code Online (Sandbox Code Playgroud)

然后,在defaultConfig中我放了:

buildConfigField "String", "BUILD_NUMBER", getDate()
Run Code Online (Sandbox Code Playgroud)

问题是,Gradle生成的字段是:

public static final String BUILD_NUMBER = 20141108114911;
Run Code Online (Sandbox Code Playgroud)

抛出"整数太大",但我不想要一个整数,我想要一个字符串!

我想明确地更换defString,尝试getDate().toString,getDate() as String"${getDate()}",仍然没有引号包围我的字符串.我还尝试在日期中间放置一个像" - "这样的字符,它仍然不会生成引号,使得:

public static final String BUILD_NUMBER = 20141108-114911;
Run Code Online (Sandbox Code Playgroud)

显然没有任何意义......

我不在这里,不熟悉Groovy,所以不确定是否有另一种(工作)方式来"强制"一个字符串.

tim*_*tes 21

您需要添加转义引号:

buildConfigField "String", "BUILD_NUMBER", "\"${new Date().format('yyyyMMddHHmmss')}\""
Run Code Online (Sandbox Code Playgroud)

  • 或者只是把混合引号:`' "BuildID" '` (2认同)