分组
了解 Measure 如何将类似的错误分组到一个问题中。
类似的错误被分组为一个问题。每个组都会显示其贡献百分比,因此您可以一目了然地了解首先要解决的问题。
分组规则取决于平台。
Android
错误按异常类型和 stack trace 顶部 frame 进行分组。
- 异常类型:
java.lang.NullPointerException - 顶部 frame:
MainActivity.kt中的onCreate
java.lang.NullPointerException: Attempt to invoke virtual method 'void com.example.app.MainActivity.onCreate(android.os.Bundle)' on a null object reference
at com.example.app.MainActivity.onCreate(MainActivity.kt:10)
at android.app.Activity.performCreate(Activity.java:8000)
...iOS
错误按 signal 和属于您应用的第一个 stack frame 进行分组。stack trace 顶部的操作系统和 framework frame(例如 CoreFoundation 和 libobjc)会被跳过,因为可修复的代码位于您自己的二进制文件中。
- Signal:
SIGABRT - 应用的第一个 frame:
MainViewController.m中的-viewDidLoad
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Crashed Thread: 0
Application Specific Information:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[MainViewController viewDidLoad]: unrecognized selector sent to instance 0x600000e2c0c0'
First Throw Call Stack:
(
0 CoreFoundation 0x000000010a2f3b6c __exceptionPreprocess + 220
1 libobjc.A.dylib 0x0000000109d8e5e1 objc_exception_throw + 48
2 MainViewController.m 0x000000010a2f3b6c -[MainViewController viewDidLoad] + 0
...
)