Firebase crashlytics 映射文件上传不起作用

Firebase crashlytics mapping file upload doesn't work

我已将 firebase crashlytics 库和 crashlytics gradle 插件添加到我的项目

classpath("com.google.firebase:firebase-crashlytics-gradle:2.3.0")
...
plugins {
   ...
   id("com.google.firebase.crashlytics")
   ...
}
...
implementation("com.google.firebase:firebase-crashlytics:17.2.1")
implementation("com.google.firebase:firebase-analytics:17.5.0")

我使用

为我的发布构建类型明确设置了 mappingFileUploadEnabled
getByName("release").apply {
   firebaseCrashlytics.mappingFileUploadEnabled = true
}

可惜映射文件没有上传。我在 firebase crashlytics 控制台中对其进行了验证 - 因为我的测试崩溃堆栈跟踪指向 Unknown Source:55。 这是我在 gradle 日志中找到的内容:

[DEBUG] [com.google.firebase.crashlytics] Mapping File Upload Enabled: false; id: 00000000000000000000000000000000

所以我的 mappingFileUploadEnabled 标志似乎没有效果。
我是否需要执行其他操作才能使映射文件上传工作?

我也没有在我的项目中看到 firebaseUpload*ReleaseProguardMapping 个任务。不确定是否应该创建它。

更新

我试图从头开始创建一个空的 android 项目并在其中添加 firebase-crashlytics。它似乎可以正常工作,我可以看到为所有构建类型创建的 uploadCrashlyticsMappingFile 任务。所以现在看起来 firebase-crashlytics gradle 插件不能为我的项目正常工作并且不能创建它应该创建的任务。有人知道为什么吗?

今天我了解到,如果您以声明方式应用 firebase-crashlytics gradle 插件,则使用 plugins {} 块不会创建映射文件上传任务。为了让它工作,我必须使用遗留的 apply(..) 函数命令式地应用插件。这是我现在项目中的内容:

apply(plugin = "com.google.firebase.crashlytics")

plugins {
    //other plugins
}

进行此更改后,映射文件上传工作正常。

更新

我发现如果我将 crashlytics 插件移动到 plugins 部分的底部,我会得到相同的效果。 现在看起来像:

plugins {
    //all other plugins
    id("com.google.firebase.crashlytics")
}