java.lang.NullPointerException ...崩溃报告

时间:2013-05-17 20:05:28

标签: java android

我又遇到了这个问题。 In this thread按钮点击声音出现了同样的问题。没有任何帮助,所以我禁用了那个声音。没有其他解决方案现在,我有相同的崩溃报告,但现在在另一个带有复选框声音的活动中。我勒个去???在我禁用其他声音之前,我从来没有遇到这种情况。所以我想如果我禁用这个声音我会有一些其他声音的问题。所以这不是解决方案。崩溃报告在这里:

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

    }
}

1 个答案:

答案 0 :(得分:1)

即使您尝试在此处实例化,MediaPlayer似乎也是null

R.raw.click

根据Docs

  

返回   MediaPlayer对象,如果创建失败,则返回null

因此,这告诉我们您的R.raw.clicks可能丢失,拼写不正确或无法使用。这导致MediaPlayer创建失败,从而使buttonClicks成为null