2014-09-15 13 views
6

Mam plik build.gradle i local.properties. Chcę zadeklarować wartość w local.properties, która nie jest włączona w kontroli wersji, do użycia w build.gradle.Użyj pola local.properties podczas deklarowania pliku buildConfigField

mam buildConfigField pracować:

buildTypes { 
    debug { 
     buildConfigField "String", "TEST", "test" 
    } 
} 

Niestety chociaż, to powoduje błąd:

buildTypes { 
    debug { 
     buildConfigField "String", "TEST", local.properties.get("test") 
    } 
} 
+2

Możesz znaleźć kod do kradzieży tutaj: http://stackoverflow.com/questions/20562189/sign-apk-without-putting-keystore-info-in-build-gradle/20573171#20573171 –

Odpowiedz

8

To można osiągnąć jak:

def getProps(String propName) { 
    def propsFile = rootProject.file('local.properties') 
    if (propsFile.exists()) { 
    def props = new Properties() 
    props.load(new FileInputStream(propsFile)) 
    return props[propName] 
    } else { 
    return ""; 
    } 
} 

w Twoim bloku buildTypes :

buildTypes { 
    debug { 
     buildConfigField "String", "TEST", getProps("test") 
    } 
} 
+0

Lepiej rzucić Wyjątek, jeśli plik lub nazwa-propna nie zostanie znaleziony, zamiast cichego zwracania pustego ciągu znaków. –

Powiązane problemy