为什么我在 Firebase 崩溃报告中看不到日志
Why I don't see Logs in Firebase Crash Reporting
我正在使用 Firebase Crash Reporting
。
我看到了 here 个名为 Logs
的功能。
但是这个怎么用呢?
我的项目中有 Google Analytics
,我正在尝试以完全相同的方法使用 FirebaseCrash.log()
记录崩溃。
public void sendGoogleAnalyticsEvent(String category, String label, String action) {
Map<String, String> build = new HitBuilders.EventBuilder()
.setCategory(category)
.setLabel(label)
.setAction(action)
.build();
tracker.send(build);
FirebaseCrash.log("Category: " + category + " label: " + label + " action: " + action);
}
但我在崩溃中没有看到任何 Logs
。这个人谈论自动记录的事件,我也没有看到。
怎么了 ?
更新:
如果我从 Firebase 菜单 select 'Analytics' ,所有内容都会显示并正常工作
确保您使用的是最新版本的 Firebase 崩溃报告 SDK,当前 10.0.1
Firebase 崩溃报告中显示的日志是从 Firebase Analytics 导入的,因此您必须改用 Firebase Analytics。 source
compile 'com.google.firebase:firebase-core:10.0.1'
例如:
Bundle bundle = new Bundle();
bundle.putString("name", "button");
FirebaseAnalytics.getInstance(this).logEvent("button_click", bundle);
throw new RuntimeException("This is a crash");
结果如下面的截图所示
来自文档:
"要报告捕获的异常,请使用 report(Throwable)。
要将日志消息附加到崩溃报告,请在执行过程中使用 log(String) 或 logcat(int, String, String) ,这将最好地帮助您了解崩溃之前发生的事情。”
// THIS IS ADDITIONAL INFORMATION SHOWN IN LOGS SECTION OF EACH ISSUE
FirebaseCrash.log("User selects Settings");
...
FirebaseCrash.log("User selects Enable BT");
...
在您捕获的异常处理程序中:
// THIS SHOWS UP IN ISSUES IN CRASH REPORTING
Throwable t=new Throwable("BluetoothAdapter is null in init_BT()").fillInStackTrace();
FirebaseCrash.report(t);
此外,之前使用 Firebase Analytics logEvent() 在用户上记录的事件也将显示在 "Logs" 中,以解决 Wilik 的回答中显示的问题。
崩溃的进一步分析(来自下面的 Captech link):
"When a Crash Report is generated it is created with the "app_exception“事件。此事件可用作在 Analytics 仪表板中创建受众时的条件...”[我自己还没有尝试过]
https://developers.google.com/android/reference/com/google/firebase/crash/FirebaseCrash
https://www.captechconsulting.com/blogs/an-introduction-to-firebase-analytics-and-crash-reporting
我正在使用 Firebase Crash Reporting
。
我看到了 here 个名为 Logs
的功能。
但是这个怎么用呢?
我的项目中有 Google Analytics
,我正在尝试以完全相同的方法使用 FirebaseCrash.log()
记录崩溃。
public void sendGoogleAnalyticsEvent(String category, String label, String action) {
Map<String, String> build = new HitBuilders.EventBuilder()
.setCategory(category)
.setLabel(label)
.setAction(action)
.build();
tracker.send(build);
FirebaseCrash.log("Category: " + category + " label: " + label + " action: " + action);
}
但我在崩溃中没有看到任何 Logs
。这个人谈论自动记录的事件,我也没有看到。
怎么了 ?
更新: 如果我从 Firebase 菜单 select 'Analytics' ,所有内容都会显示并正常工作
确保您使用的是最新版本的 Firebase 崩溃报告 SDK,当前 10.0.1
Firebase 崩溃报告中显示的日志是从 Firebase Analytics 导入的,因此您必须改用 Firebase Analytics。 source
compile 'com.google.firebase:firebase-core:10.0.1'
例如:
Bundle bundle = new Bundle();
bundle.putString("name", "button");
FirebaseAnalytics.getInstance(this).logEvent("button_click", bundle);
throw new RuntimeException("This is a crash");
结果如下面的截图所示
来自文档:
"要报告捕获的异常,请使用 report(Throwable)。
要将日志消息附加到崩溃报告,请在执行过程中使用 log(String) 或 logcat(int, String, String) ,这将最好地帮助您了解崩溃之前发生的事情。”
// THIS IS ADDITIONAL INFORMATION SHOWN IN LOGS SECTION OF EACH ISSUE
FirebaseCrash.log("User selects Settings");
...
FirebaseCrash.log("User selects Enable BT");
...
在您捕获的异常处理程序中:
// THIS SHOWS UP IN ISSUES IN CRASH REPORTING
Throwable t=new Throwable("BluetoothAdapter is null in init_BT()").fillInStackTrace();
FirebaseCrash.report(t);
此外,之前使用 Firebase Analytics logEvent() 在用户上记录的事件也将显示在 "Logs" 中,以解决 Wilik 的回答中显示的问题。
崩溃的进一步分析(来自下面的 Captech link): "When a Crash Report is generated it is created with the "app_exception“事件。此事件可用作在 Analytics 仪表板中创建受众时的条件...”[我自己还没有尝试过]
https://developers.google.com/android/reference/com/google/firebase/crash/FirebaseCrash https://www.captechconsulting.com/blogs/an-introduction-to-firebase-analytics-and-crash-reporting