2014-01-13 4 views
7

Мне сложно понять, как добавить несколько строк в мой BuildConfig с помощью Gradle. Похоже, что когда я вызываю buildConfig во второй раз, первый исчезает.Calling Gradle buildConfig несколько раз

Я был первоначально добавление этого buildConfig с другим места, но был в состоянии создать минимальный воспроизводимый тест, если я делаю это:

buildTypes { 
    debug { 
     versionNameSuffix "-DEBUG" 
     buildConfig "public static final int THING_ONE = 1;" 
     buildConfig "public static final int THING_TWO = 2;" 
    } 
    release { 
     zipAlign true 
     buildConfig "public static final int THING_ONE = 3;" 
     buildConfig "public static final int THING_TWO = 4;" 
    } 
} 

Затем, когда я пытаюсь использовать его в коде:

public class Thing { 
    public static final int THING = com.example.BuildConfig.THING_ONE + com.example.BuildConfig.THING_TWO; 
} 

Я получаю эту ошибку:

/Example/src/main/java/com/example/Thing.java:2: cannot find symbol 
symbol : variable THING_ONE 
location: class com.example.BuildConfig 
public static final int THING = com.example.BuildConfig.THING_ONE + com.example.BuildConfig.THING_TWO; 

есть ли способ, чтобы добавить несколько различных линий к buildConfig для каждого продуктаFlavor или buildType (используя несколько вызовов для buildConfig - вместо многострочной строки)?

+6

Try 'buildConfigField' вместо' buildConfig', если вы находитесь на 0.7. + Плагина Gradle for Android: 'buildConfigField" String "," SERVER_URL ", '" http://stage.this-is-so-fake.com "' ' – CommonsWare

+2

Если вы ищете, как переопределить значения buildConfigField в BuildTypes, checkout @CommonsWare: https://github.com/commonsguy/cw-omnibus/blob/0e5e5893df7a97823a100aa15d2d5bb961bfff71/Gradle/HelloBuildConfig/build.gradle – gdelente

ответ

14

Как @CommonsWare указывал, так как Gradle 1.9 (Android Studio 0.4.0), вы должны объявлять BuildConfig поля так:

buildTypes { 
    debug { 
     versionNameSuffix "-DEBUG" 
     buildConfigField "int", "THING_ONE", "1" 
     buildConfigField "int", "THING_TWO", "2" 
    } 
} 
Смежные вопросы