我已经将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-crashlytics
gradle插件对我的项目没有正常工作,也没有创建它应该创建的任务。有人知道为什么吗?
今天我了解到,如果您以声明方式应用firebase-crashlytics
gradle插件,则使用plugins{}
块映射文件上传任务将不会创建。为了使其正常工作,我必须使用遗留的apply(..)
函数应用插件。这就是我现在在项目中所拥有的:
apply(plugin = "com.google.firebase.crashlytics")
plugins {
//other plugins
}
做了这个更改之后,映射文件的上传工作很好。
更新
我发现,如果我将crashlytics
plugin移到plugins
部分的底部,就会产生同样的效果。现在看来是:
plugins {
//all other plugins
id("com.google.firebase.crashlytics")
}