【问题标题】:How to make sentry auto detect error/crash in android如何让哨兵自动检测android中的错误/崩溃
【发布时间】:2020-11-13 11:46:20
【问题描述】:

是否可以在每个活动中在 android 上自动发送错误/崩溃报告 或者它是完全手动的,我应该使用清单配置还是 sentry.properties,对不起,我是 Sentry 的新手,我使用了手动错误捕获,但可以自动进行

用于手动错误处理的现有代码

AndroidManifest.xml 配置

<meta-data android:name="io.sentry.dsn" android:value="dsn" />

MainActivity.kt

Sentry.init("dsn", AndroidSentryClientFactory(this.applicationContext))
       try {
            Log.d("sentrytest1","try")
             throw Exception("This is a test.")

        } catch (e: Exception) {
            Log.d("sentrytest1","catch")
            Sentry.capture(e)
        }

【问题讨论】:

    标签: android kotlin sentry


    【解决方案1】:

    如果您的代码未处理异常,Sentry Android SDK 将自动捕获异常(通过 catch 块)。这包括您可能通过 JNI 直接或间接使用的本机库 (C/C++) 的崩溃。这些是崩溃。

    也就是说,如果您正在处理错误,并且希望应用程序继续运行,但您想将此错误发送给 Sentry 以便您了解/调查它,您可以使用 Sentry.captureException(e) ;

    我注意到您在示例中混合了 Sentry Android SDK 版本 1 和 2 的初始化。

    Sentry Android v2 会自动初始化,您只需像在示例中所做的那样在清单中设置dsn。除非您想自定义一些东西(例如 beforeSend 回调),否则无需调用 Sentry.init

    您可以在SDK documentation 上找到此信息及更多信息。

    【讨论】:

    • 您使用的是哪个版本的 sdk?在你的 gradle 文件中,io.sentry.android 2.2.x?
    • io.sentry:sentry-android:1.7.30 来自 gradle
    • 能否请您升级到最新版本。答案是关于版本 1 vs 2
    猜你喜欢
    • 2014-06-11
    • 1970-01-01
    • 2021-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-30
    • 1970-01-01
    • 2021-09-09
    相关资源
    最近更新 更多