2016-03-07 61 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

謝謝!有用! –