Crashlytics não encontra a chave de API em crashlytics.properties em tempo de execução

No momento, estou implementando o script de troca de chave da API sugeridoaqui, exceto com tipos de construção em vez de tipos. Meu build.gradle fica assim:

...
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()
        }
    }
}
...

O arquivo gradle é compilado com êxito e o crashlytics.properties é atualizado com as informações corretas de acordo com o tipo de compilação. Este método de usar crashlytics.properties foi sugeridoaqui, e parece funcionar sem outras atualizações além da inclusão de dependências no arquivo gradle. No entanto, quandoCrashlytics.start(this)&nbsp;é chamado a partir da atividade principal, recebo uma exceção de tempo de execução:

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

Reduzi-lo para um arquivo estático crashlytics.properties (isto é, remover o script dinâmico no arquivo gradle e ter apenas um apiKey e apiSecret em crashlytics.properties) produz o mesmo erro, mesmo que seja construído com êxito.

Há alguma alteração no arquivo AndroidManifest ou build.gradle que devo fazer para apontá-lo para crashlytics.properties?