title: Weirdest android app crash
body: <p>I've made a simple android quiz game for android 2.2 (sdk-8).
  Everything works perfectly on my emulator, but when I try using the app on my smart phone (android 2.2) it crashes on the 9th question.</p>
  
  <ul>
  <li><p>1-8 questions work perfectly on my smart phone (android 2.2)</p></li>
  <li><p>after 8th (on 9th) it crashes (smart phone)</p></li>
  <li><p>Everything works perfectly in my emulator, no crashes (Eclipse)</p></li>
  <li><p>I am %120 sure Im using .apk I exported from my android project in eclipse</p></li>
  </ul>
  
  <p>Any idea what's wrong?</p>
  
  <pre><code>public class ETBetaActivity extends Activity implements View.OnClickListener {
  
      Button answer_1,
      answer_2,answer_3,
      answer_4,main;
  
      TextView q_textview,
      tip;
  
      private String a1,a2,a3,a4 = "";
  
      private int i1 = 0;
      public static int correct = 0;
  
      private boolean alive = true;
  
      MediaPlayer button_click;
  
      private String[] questions =
     {"Q1", 
      "Q2",
      "Q3", 
      "Q4",
      "Q5", //5
      "Q6", 
      "Q7", 
      "Q8", 
      "Q9", //CRASH!!!! WHAT THE FUDGE?!
      "Q10" //10
      };
      public static int question_amount = 10;
      private String[] answers_correct =
     {"Correct answer - 1",
      "Correct answer - 2",
      "Correct answer - 3", 
      "Correct answer - 4",
      "Correct answer - 5",
      "Correct answer - 6",
      "Correct answer - 7",
      "Correct answer - 8",
      "Correct answer - 9",
      "Correct answer - 10"
      };
  
      private String[][] answers_wrong = 
      { {"Q1-1", "Q1-2" , "Q1-3"},
        {"Q2-1", "Q2-2" , "Q2-3"},
        {"Q3-1", "Q3-2" , "Q3-3"},
        {"Q4-1", "Q4-2" , "Q4-3"},
        {"Q5-1", "Q5-2" , "Q5-3"},
        {"Q6-1", "Q6-2" , "Q6-3"},
        {"Q7-1", "Q7-2" , "Q7-3"},
        {"Q8-1", "Q8-2" , "Q8-3"},
        {"Q9-1", "Q9-2" , "Q9-3"},
        {"Q10-1", "Q10-2" , "Q10-3"}
  
      };
  
  
      List&lt;String&gt; question_list = new ArrayList&lt;String&gt;();
      List&lt;String&gt; answer_list_correct = new ArrayList&lt;String&gt;();
  
  
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);
          getData();
          Game(i1);
      }
  
  
      @Override
      public void onClick(View view) {
          if (alive == false) {
          //  startActivity(new Intent("com.aleksei.etb.END"));
              return;
          }
          button_click = MediaPlayer.create(this, R.raw.button_click);
          button_click.start();
          switch(view.getId()){
          case R.id.button5: //main
              break;
          case R.id.button1: //answer_1
              if(isCorrect(1))
                  correct++;
  
  
              break;
          case R.id.button2: //answer_2
              if(isCorrect(2))
                  correct++;
  
              break;
          case R.id.button3: //answer_3
              if(isCorrect(3))
                  correct++;
  
              break;
          case R.id.button4: //answer_3
              if(isCorrect(4))
                  correct++;
  
  
              break;
  
          default:
              break;
  
  
          }
          Game(i1);
          //correct++;
          tip.setText("");
      }
  
  
      public static int getResults(){
          int value = (int) Math.floor((correct*5)/question_amount);
          if(value &lt;= 0)
          return 1;
          else
          return value;
      }
  
      private boolean isCorrect(int button){
          for (int i = 0; i &lt; answers_correct.length; i++){
          if(button == 1 &amp;&amp; a1 == answers_correct[i]
              || button == 2 &amp;&amp; a2 == answers_correct[i]
              || button == 3 &amp;&amp; a3 == answers_correct[i]
              || button == 4 &amp;&amp; a4 == answers_correct[i])
              return true;
          }
          return false; 
      }
  
      private void Game(int q){
          if(i1 == question_amount) { //no more questions
              startActivity(new Intent("com.aleksei.etb.END"));
              alive = false;
              return;
          }
          try {
          main.setText("Dunno");
      /*  String answer_list[][] = {
                  {answers_correct[i1], answers_wrong[q][0] , answers_wrong[q][1] , answers_wrong[q][2]},
                  {answers_correct[i1], answers_wrong[q][0] , answers_wrong[q][1] , answers_wrong[q][2]},
                  {answers_correct[i1], answers_wrong[q][0] , answers_wrong[q][1] , answers_wrong[q][2]},
                  {answers_correct[i1], answers_wrong[q][0] , answers_wrong[q][1] , answers_wrong[q][2]},
                  {answers_correct[i1], answers_wrong[q][0] , answers_wrong[q][1] , answers_wrong[q][2]},
                  {answers_correct[i1], answers_wrong[q][0] , answers_wrong[q][1] , answers_wrong[q][2]},
                  {answers_correct[i1], answers_wrong[q][0] , answers_wrong[q][1] , answers_wrong[q][2]},
                  {answers_correct[i1], answers_wrong[q][0] , answers_wrong[q][1] , answers_wrong[q][2]},
                  {answers_correct[i1], answers_wrong[q][0] , answers_wrong[q][1] , answers_wrong[q][2]},
                  {answers_correct[i1], answers_wrong[q][0] , answers_wrong[q][1] , answers_wrong[q][2]}
          }; */
          String answer_list[] = {
          answers_correct[q], answers_wrong[q][0] , answers_wrong[q][1] , answers_wrong[q][2]     
          };
  
          Collections.shuffle(Arrays.asList(answer_list));
          answer_1.setText(answer_list[0]);
          answer_2.setText(answer_list[1]);
          answer_3.setText(answer_list[2]);
          answer_4.setText(answer_list[3]);
          a1 = answer_list[0];
          a2 = answer_list[1];
          a3 = answer_list[2];
          a4 = answer_list[3];
          q_textview.setText(questions[q]);
          /*questions = question_list.toArray(new String[question_list.size()]);
          answers_correct = answer_list_correct.toArray(new String[answer_list_correct.size()]);
          question.setText(questions[i1]);        
  
          answer_list_correct.remove(questions[i1]);
          question_list.remove(questions[i1]);*/
          } catch (Exception ex){}
          i1++;
      }
      private void getData(){
          //Getting the data
          main = (Button) findViewById(R.id.button5);
          answer_1 = (Button) findViewById(R.id.button1);
          answer_2 = (Button) findViewById(R.id.button2);
          answer_3 = (Button) findViewById(R.id.button3);
          answer_4 = (Button) findViewById(R.id.button4);
          q_textview = (TextView) findViewById(R.id.question);
          tip = (TextView) findViewById(R.id.answ1);
  
          //Making the buttons, actually work
          main.setOnClickListener(this);
          answer_1.setOnClickListener(this);
          answer_2.setOnClickListener(this);
          answer_3.setOnClickListener(this);
          answer_4.setOnClickListener(this);
  
          //Resets the text
          //Note to self: Replace with another ContectView
          main.setText("Begin!");
          answer_4.setText("");
          answer_3.setText("");
          answer_2.setText("");
          answer_1.setText("");
          tip.setText("");
  
      /*  for(String x : questions) {
              for(String y : answers_correct){
  
              answer_list_correct.add(y);
              question_list.add(x);
  
              Collections.shuffle(answer_list_correct);
              Collections.shuffle(question_list);
  
              }
          } */
  
  
  
      }
  
  
      }
  </code></pre>
  
  <p>End intent/class</p>
  
  <pre><code>public class End extends Activity implements RatingBar.OnRatingBarChangeListener {
     // ETBetaActivity classy = new ETBetaActivity();
  
      TextView score;
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.end);
          score = (TextView) findViewById(R.id.score);
          results();
          final RatingBar yourRating = (RatingBar) findViewById(R.id.ratingBar1);
          yourRating.setRating(ETBetaActivity.getResults());
          Toast.makeText(End.this, "Score "+ETBetaActivity.getResults(), Toast.LENGTH_LONG).show();
  
           yourRating.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener(){
  
              @Override
              public void onRatingChanged(RatingBar ratingBar, float rating,
                boolean fromUser) {
                //  yourRating.setRating(rating);
                  yourRating.setRating(ETBetaActivity.getResults());
                  Toast.makeText(End.this, "Score "+ETBetaActivity.getResults(), Toast.LENGTH_LONG).show();
              }});
       //movieImage.setImageResource(R.drawable.icon);       
      }
  
  
  
  
      @Override
      public void onRatingChanged(RatingBar ratingBar, float rating,
              boolean fromUser) {
          // TODO Auto-generated method stub
  
      }
  
      public void results(){
          score.setText("Your score  "+ETBetaActivity.getResults());
      }
  
      }
  </code></pre>
  
  <p>PS.
  It's not 'END' class causing the error, cause I've tried</p>
  
  <pre><code>if(i1 == 4)
  </code></pre>
  
  <p>To call it earlier, and it worked perfectly.</p>
  
  <p>Best regards.</p>