Crashlytics can not find the API key in the file at runtime


I'm currently implementing the API Key switching script suggested here, except with build types instead of flavors. My build.gradle looks like this:

buildTypes {
    debug {
        set("crashlyticsApiKey", "API_KEY_1")
        set("crashlyticsApiSecret", "API_SECRET_1")
    release {
        set("crashlyticsApiKey", "API_KEY_2")
        set("crashlyticsApiSecret", "API_SECRET_2")
File crashlyticsProperties = new File("${project.projectDir.absolutePath}/")

applicationVariants.all { variant ->
    variant.productFlavors.each { flavor ->
        def variantSuffix =
        def generateResourcesTask = project.tasks.getByName("crashlyticsGenerateResources${variantSuffix}")
        def generatePropertiesTask = task("crashlyticsGenerateProperties${variantSuffix}") << {
            Properties properties = new Properties()
            println "...copying apiKey for ${}"
            properties.put("apiKey", variant.buildType.crashlyticsApiKey)
            println "...copying apiSecret for ${}"
            properties.put("apiSecret", variant.buildType.crashlyticsApiSecret)
   FileWriter(crashlyticsProperties), "")
        generateResourcesTask.dependsOn generatePropertiesTask
        def cleanResourcesTask = project.tasks.getByName("crashlyticsCleanupResourcesAfterUpload${variantSuffix}")
        cleanResourcesTask.doLast {
            println "...removing"

The gradle file builds successfully, and updates with the correct information according to the build type. This method of using was suggested here, and appears to work without any other updates other than the inclusion of dependencies in the gradle file. However, when Crashlytics.start(this) is called from the main activity, I get a runtime exception:

java.lang.RuntimeException: Unable to create application com.lookout.LookoutApplication: java.lang.IllegalArgumentException: Crashlytics could not be initialized, API key missing from AndroidManifest.xml. Add the following tag to your Application element
<meta-data android:name="com.crashlytics.ApiKey" android:value="YOUR_API_KEY"/>

Stripping it down to a static file (i.e. removing the dynamic script in the gradle file and just having one apiKey and apiSecret in produces the same error, even though it builds successfully.

Is there some change to the AndroidManifest or the build.gradle file I should be making to point it towards

Works fine with:

# Fabric properties file: app/

Add on .gitignore (for open source projects)

REMOVE entry on AndroidManifest.xml:

    android:value="xxx6c41xxx6ec601xxxd4xxxa2" />

Oficial documentation: