2016-03-07 2 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; 
} 

Очевидно, что это даст вам ошибки компиляции, я попытался найти здесь, в StackOverflow, как это исправить, так как это вызывал эрро в моей сборке, ничего не нашли об этом. Как сделать град правильно напечатать строки с кавычками?

ответ

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' 
     } 

After что, Rebuild и он будет правильно напечатать значение строки:

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

Спасибо! Оно работает! –

Смежные вопросы