2017-11-02 14 views
0

私はクリックしてゲームを開発しました。しかし、一部のデバイスでエラーが発生します。 私はこのアプリケーションでCountDowntimerを使用しています。そして、私はこのようなエラーが表示されますlogcat。 ありがとうCountdownTimer致命的なシグナル11

OnTouch

@Override 
public boolean onTouch(View view, MotionEvent e) { 
    switch (e.getAction()) 
    { 
     case MotionEvent.ACTION_UP: 
      buttonsayac++; 
      tap_tik++; 
      if(buttonsayac==1){ 
       timerbaslat(); 

      }else { 
       Log.e("tikla","tiklama"); 
       long now=System.currentTimeMillis(); 
       last_mlsn =mlsn-(now-start_time); 
       fark=now-last_tap; 
       last_tap=now; 
       // Log.e("tag","kalanmlsn:\t"+last_mlsn); 
       touch(); 

      } 
    } 
    return true; 
} 

CountDownTimer

private void timerbaslat() { 
    start_time=System.currentTimeMillis(); 
    last_tap=start_time; 
    baslangic_saniye= (int) (mlsn/1000); 
    countDownTimer=new CountDownTimer(mlsn,0001) { 
     long once_mlsn; 
     @Override 
     public void onTick(long l) { 

      int kalan_saniye= (int) (l/1000); 
      saniye.setText(getString(R.string.kalan_saniye,kalan_saniye)); 
      once_mlsn=l; 

      long tik_fark=last_mlsn-once_mlsn; 
      if(tik_fark>1500){ 
       if(isSecond(kalan_saniye)) { 
        skorun = skorun - 50; 
        arka_plan_skor = 0; 
        if (skorun < 0) { 
         skorun = 0; 
         skor.setText(getString(R.string.dinamik_skor, 0)); 
        } else { 
         skor.setText(getString(R.string.dinamik_skor, skorun)); 
        } 
       } 
       } 
      hizHesaplama(arka_plan_skor); 

      if(hiz>5){ 
       hizArayuz(5);} 
      else { 
       hizArayuz(hiz);} 
     } 

     @Override 
     public void onFinish() { 
        Log.e("finish","finish"); 
        taphere.setEnabled(false); 
        submitScore(sn); 
        submitTap(tap_tik); 
        String sonskor="s_skor"+sn; 
        Intent i=new 
       Intent(GamesActivity.this,ScoreActivity.class); 
        i.putExtra("skor",skorun); 
        i.putExtra("category",sn); 
        startActivity(i); 
        } 
        }.start(); 
       } 

私は右の仕上げ法上でCountDowntimer後にこのエラーが発生します。 onfinish方法で

Log.e("finish","finish"); 
taphere.setEnabled(false); 
submitScore(sn); 
submitTap(tap_tik); 
String sonskor="s_skor"+sn; 
Intent i=new Intent(GamesActivity.this,ScoreActivity.class); 
i.putExtra("skor",skorun); 
i.putExtra("category",sn); 
startActivity(i);` 

エラーlogcatに

A/libc: Fatal signal 11 (SIGSEGV) at 0x00000028 (code=1), thread 19668 (m.taphere_games) 
11-01 20:23:36.161 193-193/? E/Corkscrew: unrecognized DW_CFA_* instruction: 0x10 
11-01 20:23:36.457 618-701/system_process E/InputDispatcher: channel '52dd1ae0 dijital.kuark.com.taphere_games/dijital.kuark.com.taphere_games.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed! 
11-01 20:23:36.461 618-701/system_process E/InputDispatcher: channel '52bed10c dijital.kuark.com.taphere_games/dijital.kuark.com.taphere_games.GamesActivity (server)' ~ Channel is unrecoverably broken and will be disposed! 
11-01 20:23:36.461 618-701/system_process E/InputDispatcher: channel '52bf3808 dijital.kuark.com.taphere_games/dijital.kuark.com.taphere_games.ScoreActivity (server)' ~ Channel is unrecoverably broken and will be disposed! 
11-01 20:23:36.461 618-701/system_process E/InputDispatcher: channel '52b412f8 dijital.kuark.com.taphere_games/dijital.kuark.com.taphere_games.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed! 
11-01 20:23:36.593 618-21159/system_process E/NativeCrashListener: Unable to report native crash 
                    java.lang.IndexOutOfBoundsException: Invalid index 2, size is 2 
                     at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255) 
                     at java.util.ArrayList.get(ArrayList.java:308) 
                     at com.android.server.am.ActivityStack.finishTopRunningActivityLocked(ActivityStack.java:2335) 
                     at com.android.server.am.ActivityStackSupervisor.finishTopRunningActivityLocked(ActivityStackSupervisor.java:2050) 
                     at com.android.server.am.ActivityManagerService.handleAppCrashLocked(ActivityManagerService.java:9548) 
                     at com.android.server.am.ActivityManagerService.makeAppCrashingLocked(ActivityManagerService.java:9441) 
                     at com.android.server.am.ActivityManagerService.crashApplication(ActivityManagerService.java:10086) 
                     at com.android.server.am.ActivityManagerService.handleApplicationCrashInner(ActivityManagerService.java:9637) 
                     at com.android.server.am.NativeCrashListener$NativeCrashReporter.run(NativeCrashListener.java:86) 
+0

ポストは実際に私はArrayListのを使用していない – codeMagic

+0

@codeMagicの画像にリンクするのではなく、あなたのポストにスタックトレース。解決策はまだ有効ですか? –

答えて

0

あなたの問題は

java.lang.IndexOutOfBoundsExceptionです:無効なインデックス2、サイズは2

ですだからArrayListについてコードをチェックしてください。

あなたArrayListのサイズは2あり、そしてあなたがあなたのArrayListのインデックス(2)を使用するyouList.get(2)または他のコードを使用します。

このようにすることができます。

ArrayList yourList = new ArrayList(); 

if (yourList.size() > 2) { 
    // do something you want here 
} 

このようなエラーがありますか?

enter image description here

+0

を編集したこと –

+0

'List'を使用していますか? – KeLiuyue

+0

いいえ、私はSharedPreferencesを使って保存します。 –

関連する問題