We wanted to prevent api/secret/private key from checking into git source control.
Solution 1: secret.properties
Create secret.properties in project directory.
GOOGLE_PLACES_API_KEY=AIzaXXXXAdd the following to .gitignore
# Secret
secret.propertiesAdd the following to module:app build.gradle
def secretFile = rootProject.file("secret.properties")
def secretProperties = new Properties()
secretProperties.load(new FileInputStream(secretFile))
android {
    defaultConfig {
        ...
        // buildConfigField("String", "GOOGLE_PLACES_API_KEY", secretProperties['GOOGLE_PLACES_API_KEY'])
        buildConfigField("String", "GOOGLE_PLACES_API_KEY", "\"${secretProperties['GOOGLE_PLACES_API_KEY']}\"")
        // optional - access via xml resource
        // resValue("string", "GOOGLE_PLACES_API_KEY", secretProperties['GOOGLE_PLACES_API_KEY'])
        resValue("string", "GOOGLE_PLACES_API_KEY", "${secretProperties['GOOGLE_PLACES_API_KEY']}")
    }
}Access the api key in code
val key = BuildConfig.GOOGLE_PLACES_API_KEYAccess the api key in xml
@string/GOOGLE_PLACES_API_KEYSolution 2: gradle.properties
NOT using gradle.properties in your project directory, but gradle.properties in C:\Users\[USERNAME]\.gradle. If the file doesn't exist, create it.
PROJECTX_GOOGLE_PLACES_API_KEY=AIzaXXXXNOTE: Since all your project share the same global gradle.properties file, you might want to add project name as prefix to the key name.
Add the following to module:app build.gradle
android {
    defaultConfig {
        ...
        buildConfigField("String", "GOOGLE_PLACES_API_KEY", PROJECTX_GOOGLE_PLACES_API_KEY)
    }
}Access the api key in code
val key = BuildConfig.GOOGLE_PLACES_API_KEYSolution 3: via res/value/secret.xml
Add resource file res/values/secret.xml.
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="GOOGLE_PLACES_API_KEY">AIzaXXXX</string>
</resources>Add the following to .gitignore
# Secret
secret.xmlAccess the api key in code
val key = context.getString(R.string.GOOGLE_PLACES_API_KEY)Access the api key in xml
@string/GOOGLE_PLACES_API_KEYSolution 4: Singleton Class
object AppKey {    const val GOOGLE_PLACES_API_KEY = "AIzaXXXX"}Add the following to .gitignore
# Secret
AppKey.ktAccess the api key in code
val key = AppKey.GOOGLE_PLACES_API_KEY