gpt4 book ai didi

android - 使用 Crashlytics SDK 时如何在发生崩溃时进行回调?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:48:57 25 4
gpt4 key购买 nike

背景

我们使用 Crashlytics SDK 来管理应用程序崩溃并获取有关它们的所需信息。

到目前为止,SDK自动收集的信息已经足够了

问题

我想为每次崩溃添加更多信息,例如:可用和总堆内存、 Activity 堆栈...

问题是,我看不到实现这一目标的方法。

我知道 Android 框架处理未处理异常的方式非常简单(使用 Thread.setDefaultUncaughtExceptionHandler )并且 SDK 可能就是这样工作的,但我找不到在哪里使用 SDK 本身的监听器。

我尝试过的

  1. SDK 有一个监听器,但它似乎不是当前 session 的,如图所示here .函数名称是 "crashlyticsDidDetectCrashDuringPreviousExecution",这意味着它是上一个 session 的。之前在弃用的方法中提供了相同的回调。

  2. 有“Custom Logging”和“Custom Keys”功能,但这些功能是在我调用它们时出现的(当崩溃发生时不正确)。

问题

有没有办法在发生崩溃时立即向 Crashlytics 添加额外信息?

如果是,怎么做到的?

最佳答案

尝试创建一个 UncaughtExceptionHandler 并使用 Custom Key(s)存储您希望与崩溃报告相关联的信息。

  1. 创建您的自定义 UncaughtExceptionHandler ( ensuring that it will pass exception to default UncaughtExceptionHandler to be handled later via Crashlytics )。
  2. uncaughtException 方法中添加自定义逻辑来设置您的 key ,例如Crashlytics.setString("available_memory", "5784");

  3. 检查您的 Crashlytics 仪表板以查看您的应用程序崩溃时的自定义 key

创建自定义应用程序子类来保存您的逻辑:

public class MyApplication extends Application {
private static Thread.UncaughtExceptionHandler mDefaultUncaughtExceptionHandler;

private static Thread.UncaughtExceptionHandler mCaughtExceptionHandler = new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread thread, Throwable ex) {
// Custom logic goes here
// Calculate available memory
Crashlytics.setString("available_memory", "5784");
// This will make Crashlytics do its job
mDefaultUncaughtExceptionHandler.uncaughtException(thread, ex);
}
};

@Override
public void onCreate() {
super.onCreate();

// Order is important!
// First, start Crashlytics
Crashlytics.start(this);

// Second, cache a reference to default uncaught exception handler
mDefaultUncaughtExceptionHandler = Thread.getDefaultUncaughtExceptionHandler();
// Third, set custom UncaughtExceptionHandler
Thread.setDefaultUncaughtExceptionHandler(mCaughtExceptionHandler);
}
}

请记住在 AndroidManifest.xml 的标签中指定您的应用程序子类的名称

<application android:name="MyApplication">

关于android - 使用 Crashlytics SDK 时如何在发生崩溃时进行回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37256595/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com