【问题标题】:Fabric CrashLog only show the crashed .so file, doesn't show the detail line numberFabric CrashLog 仅显示崩溃的 .so 文件,不显示详细行号
【发布时间】:2025-12-01 20:05:02
【问题描述】:

我的应用程序发生原生崩溃,崩溃上传,但它只显示崩溃的 .so 文件,没有详细的崩溃行,只是每行都缺少单词。

当崩溃发生时,工作室可以记录详细信息,如下所示。

我的问题是为什么 Crashlytics 不像 AndroidStudio 那样显示详细的崩溃日志。

【问题讨论】:

  • 来自 Fabric 的 Mike。最可能的问题是未正确上传符号。有几件事要检查,确保您是 Gradle Crashlytics 块,如下所示: crashlytics { enableNdk true manifestPath 'AndroidManifest.xml' } 并且您正在运行 ./gradlew crashlyticsUploadSymbolsRelease 以上传您的符号。
  • 感谢您的回答。你提到的两个步骤我已经完成了。不同之处在于我的风格是 Alpha 而 buildType 是调试的,所以我运行 ./gradlew crashlyticsUploadSymbolsAlphaDebug,它有效吗?我想知道 crashlyticsUploadSymbolsRelease 正在做什么任务,它是如何上传符号的,以及什么是符号?
  • @MikeBonnell 如果你给我们一个配置了 Crashlyitics NDK 的 android studio 项目,那就太好了
  • @gxela 它将遵循 Gradle 步骤:fabric.io/downloads/gradle/ndk
  • @MikeBonnell 这正是我所做的,但我没有用 gradle 构建我的共享库,它是在 src/main/jniLibs// 下复制的,所以我在crashlytics {} 块。 crashlyticsUploadSymbolsRelease 花了一分钟多的时间才完成。有没有办法检查上传到 crashytics 的符号?行号丢失,很难知道为什么......

标签: google-fabric


【解决方案1】:

我找到了解决办法

我已将此代码添加到 build.gradle 中,它将从 .so 获取所有符号,我可以在 firebase 中找到崩溃报告

crashlytics {
    enableNdk true
    //https://medium.com/@aungkyawmyint_26195/setting-up-ndk-crashlytics-android-11ad775676f7
    //https://*.com/questions/49511783/crashlytics-android-ndk-missing-all-symbols-in-crash-reports
    manifestPath 'src/main/AndroidManifest.xml'
}
tasks.whenTaskAdded { task ->
    if (task.name.startsWith('assemble')) {
        task.finalizedBy "crashlyticsUploadSymbols" + task.name.substring('assemble'.length())
    }
}

不需要做任何事情

无需每次都触发此./gradlew crashlyticsUploadSymbols{variant} 命令

【讨论】:

    最近更新 更多