2013-05-17 231 views
0

我再次遇到此问题。 In this thread我有与按钮单击声音相同的问题。没有什么帮助,所以我禁用了这个声音。无其他解决方案。现在,我有了相同的崩溃报告,但现在在另一个带有复选框声音的活动中。我勒个去???我从来没有这个崩溃,直到我禁用其他声音。所以我想如果我禁用这个声音,我会遇到其他一些声音的问题。所以这不是解决方案。在这里,崩溃报告:java.lang.NullPointerException ...崩溃报告

java.lang.NullPointerException 
at rs.androidaplikacije.zastaveigradovi.Izbor.onCheckedChanged(Izbor.java:126) 
at android.widget.RadioGroup.setCheckedId(RadioGroup.java:172) 
at android.widget.RadioGroup.access$600(RadioGroup.java:52) 
at android.widget.RadioGroup$CheckedStateTracker.onCheckedChanged(RadioGroup.java:342) 
at android.widget.CompoundButton.setChecked(CompoundButton.java:127) 
at android.widget.CompoundButton.toggle(CompoundButton.java:86) 
at android.widget.RadioButton.toggle(RadioButton.java:72) 
at android.widget.CompoundButton.performClick(CompoundButton.java:98) 
at android.view.View$PerformClick.run(View.java:9080) 
at android.os.Handler.handleCallback(Handler.java:587) 
at android.os.Handler.dispatchMessage(Handler.java:92) 
at android.os.Looper.loop(Looper.java:130) 
at android.app.ActivityThread.main(ActivityThread.java:3821) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:507) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:875) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:633) 
at dalvik.system.NativeStart.main(Native Method) 

和活动代码:

public void onCheckedChanged(RadioGroup group, int checkedId) { 
      if(music == true){ 
      buttonClicks.start(); 
      } 
      } 

错误是在这条线:

buttonClicks.start(); 

这里是全班同学:

public class Izbor extends Activity implements OnClickListener, OnCheckedChangeListener{ 

    public boolean music; 
    MediaPlayer buttonClicks; 
    MediaPlayer buttonBack; 
    RadioButton rbDesetEasy,rbDvadesetEasy,rbDesetMedium,rbDvadesetMedium,rbDesetHard, rbDvadesetHard; 
    Button dNazad, dStart; 
    RadioGroup rGrupa; 
    TextView tv1; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     SharedPreferences getPrefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext()); 
     music = getPrefs.getBoolean("checkbox", true); 

     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 

     setContentView(R.layout.izbor); 
     addListenerOnButton(); 

    } 

    private void addListenerOnButton() { 

     Typeface dugmad = Typeface.createFromAsset(getAssets(), "Bebas.ttf"); 
     Typeface pitanjeVrh = Typeface.createFromAsset(getAssets(), "Lobster.ttf"); 


     rbDesetEasy = (RadioButton) findViewById(R.id.radio1); 
     rbDvadesetEasy = (RadioButton) findViewById(R.id.radio2); 
     rbDesetMedium = (RadioButton) findViewById(R.id.radio3); 
     rbDvadesetMedium = (RadioButton) findViewById(R.id.radio4); 
     rbDesetHard = (RadioButton) findViewById(R.id.radio5); 
     rbDvadesetHard = (RadioButton) findViewById(R.id.radio6); 
     dNazad = (Button) findViewById(R.id.bNazad); 
     dStart = (Button) findViewById(R.id.bStart); 
     rGrupa = (RadioGroup) findViewById(R.id.radioGroup1); 
     buttonBack = MediaPlayer.create(Izbor.this, R.raw.button31); 
     tv1 = (TextView) findViewById(R.id.tv1); 
     buttonClicks = MediaPlayer.create(this, R.raw.click); 

     dNazad.setTypeface(dugmad); 
     dStart.setTypeface(dugmad); 
     rbDesetEasy.setTypeface(dugmad); 
     rbDvadesetEasy.setTypeface(dugmad); 
     rbDesetMedium.setTypeface(dugmad); 
     rbDvadesetMedium.setTypeface(dugmad); 
     rbDesetHard.setTypeface(dugmad); 
     rbDvadesetHard.setTypeface(dugmad); 
     tv1.setTypeface(pitanjeVrh); 


     rGrupa.setOnCheckedChangeListener(this); 
     rbDesetEasy.setOnClickListener(this); 
     rbDvadesetEasy.setOnClickListener(this); 
     rbDesetMedium.setOnClickListener(this); 
     rbDvadesetMedium.setOnClickListener(this); 
     rbDesetHard.setOnClickListener(this); 
     rbDvadesetHard.setOnClickListener(this); 
     dStart.setOnClickListener(new OnClickListener() { 

      public void onClick(View v) { 
       if(rbDesetEasy.isChecked()){ 
        Intent intent = new Intent(Izbor.this, Kviz.class); 
        intent.putExtra("myMethod", "nextQuestion"); 
        startActivity(intent); 
       }else if(rbDvadesetEasy.isChecked()){ 
         Intent intent = new Intent(Izbor.this, Kviz20.class); 
         intent.putExtra("myMethod", "nextQuestion"); 
         startActivity(intent); 
        }else if(rbDesetMedium.isChecked()){ 
         Intent intent = new Intent(Izbor.this, Kviz10Medium.class); 
         intent.putExtra("myMethod", "nextQuestion"); 
         startActivity(intent); 
        }else if(rbDvadesetMedium.isChecked()){ 
         Intent intent = new Intent(Izbor.this, Kviz20Medium.class); 
         intent.putExtra("myMethod", "nextQuestion"); 
         startActivity(intent); 
        }else if(rbDesetHard.isChecked()){ 
         Intent intent = new Intent(Izbor.this, Kviz10Hard.class); 
         intent.putExtra("myMethod", "nextQuestion"); 
         startActivity(intent); 
        }else if(rbDvadesetHard.isChecked()){ 
         Intent intent = new Intent(Izbor.this, Kviz20Hard.class); 
         intent.putExtra("myMethod", "nextQuestion"); 
         startActivity(intent); 
       } 
      } 
     }); 


     dNazad.setOnClickListener(new OnClickListener() { 
      public void onClick(View v) { 
       if(music == true){ 
       buttonBack.start(); 
       } 
       finish(); 
      } 
     }); 
    } 

    public void onCheckedChanged(RadioGroup group, int checkedId) { 
     if(music == true){ 
     buttonClicks.start(); 
     } 
     } 

    public void onClick(View v) { 
     // TODO Auto-generated method stub 

    } 
} 
+0

可能是您的'buttonClicks'为'null'? –

+3

你确定'R.raw.click'存在并且拼写正确吗? – codeMagic

+0

'if(music == true){'不是很好的风格,'如果(音乐){'好得多...... – jlordo

回答

1

MediaPlayer似乎是即使你试图在这里

R.raw.click 

初始化它按照Docs

返回 一个MediaPlayer对象,或者为null,如果创建失败

所以这告诉我们,你的R.raw.clicks可能丢失,拼写不正确或不可用。这导致MediaPlayer创建失败,因此将您的buttonClicks作为null

+0

它不会丢失,拼写正确。它适用于我的电话和我女朋友的电话。我可以听到它。而且我有大约10 000次下载这个应用程序,并且只有这些崩溃报告中的几个,所以它在其他情况下工作正常。 – marjanbaz

+0

@marjanbaz你确定它与特定手机的型号无关吗? – thegrinner

+0

嗯,我不知道。 Google不会与崩溃报告共享该信息。也许。 – marjanbaz