提问者:小点点

Firebase crashlytics映射文件上载不工作


我已经将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 console中验证了它-对于我的测试崩溃,stacktrace指向unknown source:55。以下是我在gradle日志中发现的内容:

[DEBUG][com.google.firebase.crashlytics]映射文件上载已启用:false;ID:0000000000000000000000000000000000000000000000000000000000000000

因此,我的MappingFileUploadEnabled标志似乎不起作用。
是否需要执行其他操作才能使映射文件上载正常工作?

我的项目中也看不到FireBaseUpload*ReleaseProguardMapping任务。但不确定是否应该创建它。

更新

我尝试从头创建一个空的android项目,并在那里添加了firebase-crashlytics。在那里它似乎起作用了,我可以看到为所有构建类型创建的UploadCrashlyTicsMappingFile任务。因此,目前看来firebase-crashlyticsgradle插件对我的项目没有正常工作,也没有创建它应该创建的任务。有人知道为什么吗?


共1个答案

匿名用户

今天我了解到,如果您以声明方式应用firebase-crashlyticsgradle插件,则使用plugins{}块映射文件上传任务将不会创建。为了使其正常工作,我必须使用遗留的apply(..)函数应用插件。这就是我现在在项目中所拥有的:

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

plugins {
    //other plugins
}

做了这个更改之后,映射文件的上传工作很好。

更新

我发现,如果我将crashlyticsplugin移到plugins部分的底部,就会产生同样的效果。现在看来是:

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