我正在尝试使用此函数在BuildConfig中包含一个包含构建日期的自定义字段:
def getDate() { def date = new Date() def formattedDate = date.format('yyyyMMddHHmmss') return formattedDate }
然后,在defaultConfig中我放了:
buildConfigField "String","BUILD_NUMBER",getDate()
问题是,Gradle生成的字段是:
public static final String BUILD_NUMBER = 20141108114911;
抛出“整数太大”,但我不想要一个整数,我想要一个字符串!
我试图用String明确地替换def,尝试使用getDate().toString,getDate()作为String和“${getDate()}”,并且仍然没有引用我的String.我还尝试在日期中间放置一个像“ – ”这样的字符,它仍然不会生成引号,使得:
public static final String BUILD_NUMBER = 20141108-114911;
显然没有任何意义……
我不在这里,不熟悉Groovy,所以不确定是否有另一种(工作)方式来“强制”一个字符串.
解决方法
您需要添加转义引号:
buildConfigField "String","\"${new Date().format('yyyyMMddHHmmss')}\""