3

クラッシュレポートツールとして、アプリでCrashlyticsを使用しています。 Androidネイティブクラッシュの場合、正常に動作し、クラッシュを正しくグループ化しています。 私たちのアプリには、反応ネイティブのコンポーネントもほとんどありません。これらのコンポーネントで発生したクラッシュについては、それらを捕捉し、Crashlyticsに致命的ではない例外としてログに記録します。Crashlytics(Fabrics)で非致命的な例外を効果的にグループ化する方法は?

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

クラッシュCrashlyticsのダッシュボードにログインして取得しているが、それは単一のタブ内のすべてのクラッシュを示しています。これらは同じまたは異なる反応ネイティブコンポーネントの異なるクラッシュである可能性があります。このため

enter image description here

我々は、特定のクラッシュのインスタンスを見つけることができません。クラッシュの各インスタンスを手動で実行する必要があります。

例外が生成されるクラスの名前をとると思います。この場合、PlatformNativeModuleCallExceptionHandlerです。 独自のカスタム例外クラスを作成しようとしましたが、それも役に立たなかった。

ここでは、致命的ではない例外をどのようにグループ化できますか? すべての同様のクラッシュは、その合計インスタンスと共にグループ化する必要があります。

答えて

3

Crashlyticsはメソッドとクラッシュライン番号を使用してクラッシュをグループ化します。したがって、致命的でないすべての例外ハンドラメソッドがある場合、グループ化されます。現在、これに対する回避策はありません。

+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); } } 

ところで、Crashlyticsは例外でメッセージ文字列を無視します。

関連する問題