android - 在 Android 上,使用调用类作为事件源来记录 Crashlytics 事件的包装器方法

标签 android crash-reports crashlytics twitter-fabric

我在 Utility.class 中有一个实用程序方法,它是用于发送 Crashlytics 事件的包装器。

public static void logCrashlyticsEvent(String message) {
     ...
     Crashlytics.getInstance().core.logException(new Exception(message));
     ...
}

问题是每当我从另一个类使用它时,Crashlytics 仪表板都会将事件源显示为 Utility.class,如下所示:

Utility.java line 106
com.myApp.util.Utility.logCrashlyticsEvent

而不是将它显示为调用它的实际类。

有没有办法包装对 Crashlytics 的调用,以便它仍将调用类显示为事件的源?

谢谢。

编辑: 只是为了改进@Andre Classen 解决方案。

public static void logCrashlyticsEvent(HandledException e) {
    Crashlytics.getInstance().core.logException(e);
    Timber.e("Message: %s", e.getMessage());
    // More stuff
}

处理异常:

public class HandledException extends Exception {
    public HandledException(@NonNull String message, Object... args) {
         super(String.format(message, args));
}

用法:

Utility.logCrashlyticsEvent(new HandledException("Cast exception, input value1: %s, value2: %s", someValue, anotherValue));

最佳答案

您正在创建一个新的异常而不是记录源异常,因此解决方案很简单:

public static void logCrashlyticsEvent(Exception e) {
.
.
     Crashlytics.getInstance().core.logException(e);
.
.
}

使用方法:

    try{
        String s=null;
        int size=toString().length();
    }
    catch (NullPointerException e){
        com.myApp.util.Utility.logCrashlyticsEvent(e);
    }

这样,异常就会按照您想要的方式记录下来。

关于android - 在 Android 上,使用调用类作为事件源来记录 Crashlytics 事件的包装器方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35327859/

相关文章:

java - findFragmentByID 不起作用,并且 showFragment 不是有效方法

php - 单条数据为null也无法获取到JsonResponse

扫描/打印第一行后代码崩溃

android - 如何使用 ACRA 发送 Android 崩溃报告

android - Firebase Crashlytics 不支持 NDK?

android - 如何在应用程序崩溃时添加发送反馈选项?

java - 将 ImageView 中的图像对齐到右上角

java - 升级React Native 0.61.5:Android停留在初始屏幕上

ios6 - 从 Crittercism 获得了这份崩溃报告。无法找出崩溃的原因。任何提示都会有所帮助

ios - 将 Crashlytics 构建脚本与 Xamarin.iOS 集成