Firebase 崩溃映射文件上传不起作用



我已经将firebase crashlytics lib和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控制台中验证了它——对于我的测试崩溃,stacktrace指向Unknown Source:55。以下是我在gradle日志中发现的内容:

[DEBUG][com.google.firebase.crashlytics]映射文件上传已启用:false;id:00000000000000000000000000000000

所以我的mappingFileUploadEnabled标志似乎没有效果
我需要做其他事情来上传映射文件吗?

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

UPDATE

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

今天我了解到,如果以声明方式应用firebase-crashlyticsgradle插件,则使用plugins {}块不会创建映射文件上载任务。为了使它发挥作用,我不得不使用遗留的apply(..)函数强制应用插件。这就是我现在在项目中所拥有的:

apply(plugin = "com.google.firebase.crashlytics")
plugins {
//other plugins
}

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

更新

我发现,如果我把crashlytics插件移到plugins部分的底部,我也会有同样的效果。现在看起来像:

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

相关内容

  • 没有找到相关文章

最新更新