Android Library中Build Config字符串字段配置为何缺少引号?
问题分析与解决
你的Gradle配置问题在于字符串类型的buildConfigField值没有添加转义双引号。
当你用buildConfigField "String", "LIBRARY_VERSION","${version}"时,Gradle会直接把${version}解析后的裸值NW-1.1.6插入到生成的Java代码中,不会自动为字符串类型添加引号,导致生成的代码不符合Java语法规范。
修正后的配置
android { ext{ version = 'NW-1.1.6' name = 'Network' } defaultConfig { buildConfigField "String", "LIBRARY_VERSION", "\"${version}\"" } }
原理说明
在Groovy(Gradle基于Groovy)中,要在字符串中输出双引号,需要用反斜杠\进行转义。添加\"后,Gradle生成BuildConfig.java时,会将转义后的双引号保留,最终生成符合预期的字符串常量定义:
public static final String LIBRARY_VERSION = "NW-1.1.6";
内容的提问来源于stack exchange,提问作者WISHY
相关产品推荐
相关产品推荐

