2016-03-07 63 views
3

的最后一天开始,我创建在构建配置是一个很好的做法一些变量来发布和调试之间单独处理这些新的项目建立这样的:的Android BuildConfig场产生字符串错误

... 
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; 
} 

显然,这会给你编译错误,我想在这里找到在计算器如何解决这个问题,因为这导致了错误在我的构建中,没有发现任何关于此的内容。如何使用引号将Gradle正确打印字符串?

回答

5

写这个我已经找到了方法后,似乎值在它们被定义,因此,如果您添加逃脱引号这一点,将工作,例如同样的方法印刷:

buildTypes { 
     release { 
      minifyEnabled false 
      buildConfigField("String", "PARSE_APP_ID", '"xxxxxxxxxxxxxxxxxxxxxxxx"') 
      buildConfigField("String", "PARSE_CLIENT_ID", '"xxxxxxxxxxxxxxxxxxxxxxxxx"') 
      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 = "999999999999999999"; 
    public static final String PARSE_APP_ID = "xxxxxxxxxxxxxxxxxxxxxxxxxxx"; 
    public static final String PARSE_CLIENT_ID = "xxxxxxxxxxxxxxxxxxxxxxxx"; 
} 
+0

或者,在Groovy代码使用单引号('“‘xxxxxxxxxxxxxxxxx’”')。 – CommonsWare

+0

感谢您的建议:),将编辑。 – Eefret

+0

谢谢!有用! –