Crashlytics 不显示本机崩溃

Posted

技术标签:

【中文标题】Crashlytics 不显示本机崩溃【英文标题】:Crashlytics doesn't display native crashes 【发布时间】:2020-04-05 22:01:20 【问题描述】:

在这被标记为重复之前,我已经尝试了所有可能的问题。 正确报告 Java 崩溃,但是来自本机库的崩溃没有调试符号。

我尝试过的:

./gradlew crashlyticsUploadSymbolsDevDebug // to upload the symbols manually
androidNdkOut 'build/intermediates/ndkBuild/devDebug/obj/local' //specify the ndk paths manually
androidNdkLibsOut 'build/intermediates/merged_native_libs/devDebug/out/lib'` //specify the ndk paths manually

当前设置:

依赖关系:

implementation('com.crashlytics.sdk.android:crashlytics:2.10.1@aar')  transitive = true 

implementation 'com.crashlytics.sdk.android:crashlytics-ndk:2.1.1'

android.applicationVariants.all  variant ->
def variantName = variant.name.capitalize()
def task = task("ndkbuild$variantName")
task.finalizedBy("crashlyticsUploadSymbols$variantName")


crashlytics 
enableNdk true
manifestPath 'AndroidManifest.xml'
androidNdkOut 'build/intermediates/ndkBuild/devDebug/obj/local'
androidNdkLibsOut 'build/intermediates/merged_native_libs/devDebug/out/lib'

结构依赖:

buildscript 
repositories 
    maven  url 'https://maven.fabric.io/public' 


dependencies 
    // The Fabric Gradle plugin uses an open ended version to react
    // quickly to Android tooling updates
    classpath 'io.fabric.tools:gradle:1.31.2'
    

Fabric 已设置并处理 Java 层崩溃。

Fabric.Builder builder = new Fabric.Builder(this).kits(new Crashlytics(), new 
CrashlyticsNdk());`

问题:报告了本机崩溃,但缺少调试符号,没有错误/输出表明它们丢失的原因。

我制作了一个示例应用程序,以便能够更轻松地重现这一点。 您所要做的就是在 firebase 中创建一个项目并粘贴 google-services.json 文件并构建。 Link to the repo

【问题讨论】:

你能让它工作吗?我们有同样的问题。尝试了一切,仍然没有看到任何符号。 【参考方案1】:

这可能是由调试符号in another module 或an outdated configuration 引起的。

尝试像这样配置它:

crashlytics 
    enableNdk true
    // If using the Android plugin for Gradle version 2.2.0+ with the externalNativeBuild DSL,
    // you should remove the androidNdkOut and androidNdkLibsOut properties, as these paths will
    // automatically be detected by the Fabric plugin.
    androidNdkOut 'obj'
    androidNdkLibsOut 'libs'
    manifestPath 'AndroidManifest.xml'

但是,你最好迁移到Firebase Crashlytics,因为 Fabric 很快就会关闭它:

Crashlytics 已集成到 Firebase 中,并具有仅限 Firebase 的新功能。新应用应使用 Firebase 中的 Crashlytics 来访问最新的更新和功能。 Fabric Crashlytics 和 Fabric 仪表板将在 2020 年 3 月 31 日之前供现有用户使用。

【讨论】:

感谢您的回答,马丁。不幸的是,这并没有解决问题。阅读 fabric 文档,据说即使我们从 crashlytics 中完全删除 androidNdkOut 和 androidNdkLibsOut 路径,fabric 仍然应该找到调试符号。我正在使用 crashlytics。 两个月前,我已经成功上传了符号。但现在,它响应 202 同时只有 Fabric Crashlytics,所以这个问题已经过时了。

以上是关于Crashlytics 不显示本机崩溃的主要内容,如果未能解决你的问题,请参考以下文章

在本机反应中找不到 Firebase crashlytics 崩溃日志?

禁用“答案”但不禁用“Crashlytics”

Crashlytics 不显示崩溃

Firebase crashlytics 不显示崩溃

Crashlytics(没有 Fabric)没有显示崩溃 iOS

显示flutter firebase crashlytics中发生了哪一行崩溃,并显示dart文件名