在开始新项目的最后一天,我在构建配置中创建了一些变量,作为在发布和调试构建之间单独处理它们的好习惯,如下所示:
...
buildTypes {
release {
minifyEnabled false
buildConfigField("String", "PARSE_APP_ID", "xxxxxxxxxxxxxxxxxxxxxxxxxxx")
buildConfigField("String", "PARSE_CLIENT_ID", "xxxxxxxxxxxxxxxxxxxxxxxxxx")
buildConfigField("String", "FACEBOOK_APP_ID", "999999999999999")
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug{
minifyEnabled false
buildConfigField("String", "PARSE_APP_ID", "xxxxxxxxxxxxxxxxxxxxxxxxxxx")
buildConfigField("String", "PARSE_CLIENT_ID", "xxxxxxxxxxxxxxxxxxxxxxxxxx")
buildConfigField("String", "FACEBOOK_APP_ID", "999999999999999")
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
...
问题是它没有正确创建字符串,而是直接打印字符串而没有引号,如下所示:
public final class BuildConfig {
.....
// Fields from build type: debug
public static final String FACEBOOK_APP_ID = 99999999999999999;
public static final String PARSE_APP_ID = xxxxxxxxxxxxxxxxxxxxxxxx;
public static final String PARSE_CLIENT_ID = xxxxxxxxxxxxxxxxxxxxxxxxx;
}
显然这会给你带来编译错误,我试图在 stackoverflow 中找到如何解决这个问题,因为这导致了我的构建中的错误,但没有找到任何关于此的信息。如何让 gradle 正确打印带引号的字符串?