【问题标题】:Firebase crashlytics mapping file upload doesn't workFirebase crashlytics 映射文件上传不起作用
【发布时间】:2021-01-11 17:29:27
【问题描述】:

我已将 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 控制台中验证它——因为我的测试崩溃堆栈跟踪指向Unknown Source:55。 这是我在 gradle 日志中发现的内容:

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

所以看来我的mappingFileUploadEnabled 标志无效。
我是否需要做其他事情才能使映射文件上传工作?

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

更新

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

【问题讨论】:

  • 您是如何在 Firebase 控制台上检查的?
  • 我没有检查映射文件是否已上传(可能没有办法这样做)。相反,我检查了我发送的崩溃是否经过去混淆处理。假设崩溃被去混淆然后映射文件被正确上传

标签: android firebase gradle crashlytics


【解决方案1】:

今天我了解到,如果您以声明方式应用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")
}

【讨论】:

    猜你喜欢
    • 2018-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 2017-04-03
    相关资源
    最近更新 更多