3

우리는 크래시보고 도구로 앱에서 크래시 틱스를 사용하고 있습니다. Android 네이티브 크래시의 경우 정상적으로 작동하며 충돌을 올바르게 그룹화합니다. 우리의 앱에는 반응 네이티브가 거의없는 구성 요소가 있습니다. 이러한 구성 요소에서 발생하는 크래시에 대해서는이를 catch 한 다음 Crashlytics에 치명적이지 않은 예외로 기록합니다.Crashlytics (Fabrics)에서 치명적이지 않은 예외를 효과적으로 그룹화하는 방법은 무엇입니까?

public class PlatformNativeModuleCallExceptionhandler implements 
NativeModuleCallExceptionHandler { 
@Override 
public void handleException(Exception e) { 
    try { 
     . 
     . 
     . 
     Crashlytics.logException(new Exception(exceptionString)); 
    } catch (Exception ex) {} 
} 

크래시가 기록됩니다. 크래시 틱스 대시 보드가 있지만 단일 탭 내에 모든 충돌을 표시합니다. 이들은 동일하거나 다른 반응 고유 구성 요소의 다른 충돌 일 수 있습니다. 이 때문에

enter image description here

우리는 특정 충돌의 인스턴스를 찾을 수 없습니다. 충돌의 각 인스턴스를 수동으로 수행해야합니다.

예외가 생성되는 클래스의 이름이 필요합니다.이 경우 PlatformNativeModuleCallExceptionHandler입니다. 내 자신의 사용자 정의 예외 클래스를 만들려고했지만 그 또한 도움이되지 않았다.

여기서 치명적이지 않은 예외를 그룹화하는 방법을 알고있는 사람이 있습니까? 모든 유사한 충돌은 총 인스턴스와 함께 그룹화되어야합니다.

답변

3

크래시 틱스는 메서드와 크래시 행 번호를 사용하여 충돌을 그룹화하므로 모든 치명적이지 않은 예외 처리 메서드가 있으면 함께 그룹화됩니다. 현재이 문제에 대한 해결 방법은 없습니다.

+0

이 질문에 대한 답을 회신했습니다. – miguel

2

예외가 생성 된 행 번호별로 그룹화하고 예외 유형으로 레이블을 지정합니다. 예외의 모든 유형을 알고있는 경우 각 행을 다른 행에 생성 할 수 있습니다. 또한 문자열을 사용자 지정 Exception 형식에 매핑하여 Crashlytics에서 문자열을보다 쉽게 ​​식별 할 수 있습니다.

public void crashlyticsIsGarbage(String exceptionString) { 
    Exception exception = null; 
    switch(exceptionString) { 
     case "string1": exception = new String1Exception(exceptionString); 
     case "string2": exception = new String2Exception(exceptionString); 
     case "string3": exception = new String3Exception(exceptionString); 
     case "string4": exception = new String4Exception(exceptionString); 
     default: exception = new Exception(exceptionString); 
    } 
    Crashlytics.logException(exception); 
} 

class String1Exception extends Exception { String1Exception(String exceptionString) { super(exceptionString); } } 
class String2Exception extends Exception { String2Exception(String exceptionString) { super(exceptionString); } } 
class String3Exception extends Exception { String3Exception(String exceptionString) { super(exceptionString); } } 
class String4Exception extends Exception { String4Exception(String exceptionString) { super(exceptionString); } } 

이 BTW, Crashlytics는 예외의 메시지 문자열을 무시합니다 :

다음은 예입니다.