Crashlytics no encuentra la clave API en crashlytics.properties en tiempo de ejecución

Actualmente estoy implementando el script de cambio de clave API sugeridoaquí, excepto con tipos de compilación en lugar de sabores. Mi build.gradle se ve así:

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

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

El archivo gradle se compila correctamente y crashlytics.properties se actualiza con la información correcta según el tipo de compilación. Se sugirió este método de usar crashlytics.propertiesaquíy parece funcionar sin ninguna otra actualización que no sea la inclusión de dependencias en el archivo gradle. Sin embargo cuandoCrashlytics.start(this)&nbsp;se llama desde la actividad principal, obtengo una excepción de tiempo de ejecución:

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"/>

Eliminarlo a un archivo estático crashlytics.properties (es decir, eliminar el script dinámico en el archivo gradle y solo tener una apiKey y apiSecret en crashlytics.properties) produce el mismo error, aunque se construye con éxito.

¿Hay algún cambio en el AndroidManifest o el archivo build.gradle que debería hacer para apuntarlo hacia crashlytics.properties?