2017-08-01 6 views
0

HockeyAppツールを使用してクラッシュレポートを送信します。だから私はこのクラッシュレポートの新人です。私はtheseのウェブサイトを見てきましたが、何も私の心の中には入りません。彼らが示した指示に従ってセットアップを試みました。HockeyAppツール(Android)のみを使用したクラッシュレポートの送信

しかし、ウェブサイトツールでクラッシュレポートを受け取ることができませんでした。 だから、ホッケーアプリのみを使ってクラッシュレポートツールの例を提供することはできます。

test1.java

public class test1 extends AppCompatActivity { 

    private static final String TAG = "test1"; 
    private static final String APP_ID = "2aac21928b1242a19fa49ae4cf69a552"; 
    private Button errorBtn; 
    private TextView textView; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     errorBtn = (Button) findViewById(R.id.showSnackbarButton); 
     setContentView(R.layout.activity_test1); 
     textView=(TextView)findViewById(R.id.someText); 

     errorBtn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) {     
       File file = new File("E://file.txt"); 
       try { 
        FileReader fr = new FileReader(file); 
       } catch (FileNotFoundException e) { 
        Log.d(TAG, "FilenotFound_Demo"); 
        e.printStackTrace(); 
       } 
      } 
     }); 
     checkForUpdates(); 
    } 

    @Override 
    public void onResume() { 
     super.onResume(); 
     // ... your own onResume implementation 
     checkForCrashes(); 
    } 

    @Override 
    public void onPause() { 
     super.onPause(); 
     unregisterManagers(); 
    } 

    @Override 
    public void onDestroy() { 
     super.onDestroy(); 
     unregisterManagers(); 
    } 


    private void checkForCrashes() { 
     CrashManager.register(this, APP_ID, new CrashManagerListener() { 
      public boolean shouldAutoUploadCrashes() { 
       return true; 
      } 
     }); 

    } 

    private void checkForUpdates() { 
     // Remove this for store builds! 
     UpdateManager.register(this,APP_ID); 
    } 

    private void unregisterManagers() { 
     UpdateManager.unregister(); 
    } 
} 

私のビルドモジュール:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 26 
    buildToolsVersion "26.0.0" 
    defaultConfig { 
     applicationId "com.example.river.tessting" 
     minSdkVersion 19 
     targetSdkVersion 26 
     versionCode 1 
     versionName "1.0" 
     manifestPlaceholders = [HOCKEYAPP_APP_ID: "2aac21928b1242a19fa49ae4cf69a552"] 
     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
     exclude group: 'com.android.support', module: 'support-annotations' 
    }) 
    compile 'com.android.support:appcompat-v7:26.+' 
    compile 'com.android.support.constraint:constraint-layout:1.0.2' 
    compile 'net.hockeyapp.android:HockeySDK:4.1.5' 
    testCompile 'junit:junit:4.12' 
} 
repositories { 
    jcenter() 
} 
+0

クラッシュ機能が動作しているかどうかをテストしようとしていますか? SDKは未処理の例外をキャッチして送信するように構成されていますが、現在処理されている例外はHockeyAppプラットフォームではサポートされていません。期待どおりに機能しているかどうかだけを確認している場合は、ボタンをクリックせずに例外をスローすることができます。 –

+0

@Shawn Dyasはい、私はクラッシュ機能が動作しているかどうかをテストしていました。クラッシュが発生した場合、開発者の[Hockeyapp](https://rink.hockeyapp.net/users/sign_in)アカウントに直接報告する必要があります。これが私の最初のポイントでした。処理されたexpectionsと上記のコードのログをHockeyappに送信するもう一つの点は正しいかどうかです。 – opalfire

答えて

0

クラッシュレポートは、アプリがクラッシュする場合、アプリの次回起動時に送信されます。

コードスニペットUnhandledExceptionをトリガする:

 Button crashBtn = (Button) findViewById(R.id.crash_Btn); 
     crashBtn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       throw new NullPointerException(); 
      } 
     }); 

HockeyApp Android上handledExceptionをサポートしていません。しかし、回避策として、UserMetricsを使用してそれを追跡することができます。

使用カスタムイベントHandledException情報を追跡する:

Button handledException = (Button) findViewById(R.id.handledException_Btn); 
    handledException.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      try { 
       throw new NullPointerException(); 
      }catch (Exception e){ 

       // add this wherever you want to track a custom event and attach properties or measurements to it 
       HashMap<String, String> properties = new HashMap<>(); 
       properties.put("StackTrace", e.getStackTrace().toString()); 
       properties.put("Cause", e.getLocalizedMessage()); 

       HashMap<String, Double> measurements = new HashMap<>(); 
       measurements.put("YOUR_Measurement", 1.0); 

       MetricsManager.trackEvent("YOUR_EVENT_NAME", properties, measurements); 

      } 

     } 
    }); 

をしかし、HockeyAppダッシュボードの上にあなただけの[イベント]タブでイベント名を見ることができます。カスタムイベントのプロパティを見つけるには、Application Insightにリンクする必要があります。 HockeyAppにはこれを参照できるdocumentationがあります。

+0

ありがとうKevin ...私はそれについていくつかの調査をしました.. – opalfire

+0

これらを終了する前に、私のビルドが正しいことを知りたいです@ケビン – opalfire

+0

あなたの統合コードが正しいです。しかし、ボタンアクションはHockeySDKで検出できないhandlesExceptionを引き起こします。したがって、クラッシュレポート機能をテストする場合は、try-catchを削除する必要があります。 –

関連する問題