跳到主要内容

Crash 和

注意

该门户网站正在开发中。文档的完整版本请看这里.

集成依赖项到项目中

在您的 <project>/<app-module>/build.gradle

  dependencies {
    implementation "ru.ok.tracer:tracer-crash-report:0.2.7"}

Tracer 还支持收集和分析原生崩溃。如果您想要收集发生在原生代码中的崩溃,需要连接相应的依赖项:

  dependencies {
    implementation
  "ru.ok.tracer:tracer-crash-report-native:0.2.7"}

目前,这个功能正在积极开发中。崩溃的收集已经可以工作,但目前显示的是所有原生崩溃,暂时没有堆栈跟踪和其他详细信息。您现在就可以收集和计算它们,而显示和分类正在完善中。

更多关于依赖项的详细说明,请参见"快速启动"页面。

CrashReportConfiguration 和 CrashFreeConfiguration 描述

在您的 Application.kt

 

  class MyApplication : Application(), HasTracerConfiguration {
    override val tracerConfiguration: List<TracerConfiguration>
        get() = listOf(
            CrashReportConfiguration.build {
                // 您的选项
            },
            CrashFreeConfiguration.build {
                // 您的选项
},
        )
}

CrashReportConfiguration.Builder 选项:

  • setEnabled --- 启用/禁用崩溃报告。默认情况下启用,可以保持不变))

  • setSendAnr --- 禁用发送应用程序无响应 (ANR)。默认情况下启用

  • setNativeEnabled --- 启用/禁用原生崩溃报告。默认值取决于是否连接了 tracer-crash-report-native 依赖项。如果连接了,那么默认情况下崩溃报告也是启用的。如果未连接,则禁用。 ⚠ 未连接相应依赖项时无法启用原生崩溃报告,但如果存在依赖项,可以禁用崩溃报告。

CrashFreeConfiguration.Builder 选项:

  • setEnabled --- 启用/禁用 crash free 用户的计算。默认情况下禁用!

CrashReportConfiguration.Builder 的过时或危险选项:

  • setHost --- 已过时,将在0.3.x版本中移除。如果您确实需要更改主机,请使用 CoreTracerConfiguration.setHost

  • setSendLogs --- 已过时且无效,将在0.3.x版本中移除

  • setCountCrashFreeUsers --- 已过时且无效,将在0.3.x版本中移除。替代此选项的是 CrashFreeConfiguration.Builder.setEnabled

  • setSendThreadsDump、setSendAsap、setMaxNonFatalExceptions --- 已过时且无效,将在0.3.x版本中移除

CrashFreeConfiguration.Builder 的过时或危险选项:

  • setExperimentalMaxSessionsToUpload --- 需要累积多少会话以发送批量数据。默认为10。仅用于测试!

  • setExperimentalMaxSessionTimeSpanToUpload --- 累积会话的时长以发送批量数据。默认为4小时(以毫秒计)。仅用于测试!

  • setExperimentalUploadSessionsFromYesterday --- 如果发现昨天(或更早)的会话,发送批量数据。默认情况下启用

TracerCrashReport 描述

使用 TracerCrashReport.report(throwable) 方法发送 non-fatals。

  // 记录非致命错误. 
TracerCrashReport.report(NonFatalException("I'll be ok soon")

崩溃总是按堆栈跟踪的共同部分分组。默认情况下,non-fatals 也是如此,但有方法可以影响这种分组。

为了让所有 non-fatals 分到一个组,不论堆栈跟踪如何,可以使用带有 issueKey 参数的 report 方法。

  // 记录带有 ISSUE- 键的非致命错误001 
TracerCrashReport.report(NonFatalException("What a terrible failure"), issueKey = "ISSUE-001")

目前 Tracer 的限制是每天 100 万个事件。因此建议不要滥用此方法。

事件也可以添加额外信息