我在BuildConfig中嵌入gradle.properties
的属性:
gradle.properties:
FIELD=value
的build.gradle:
android {
defaultConfig {
buildConfigField "String", "FIELD", project.properties["FIELD"]
}
}
这很好用。我的问题是看起来值是复制并粘贴到生成的BuildConfig
类中,因此它不处理数值或空值。
我最终在生成的代码中看到了类似的内容:
public static final String FIELD = ;
或
public static final String FIELD = 1234;
对此进行编码的正确方法是什么,以便属性文件中的值被编码为字符串而不仅仅是粘贴在其中?
编辑:这似乎是一个解决方案,但我宁愿不必使用commons-lang来获得这个,并且感觉应该有更好的方法来实现这一点:
buildConfigField 'String', 'FIELD',
$/"${StringEscapeUtils.escapeJava((project.properties['FIELD'] ?: '') as String)}"/$