我又遇到了这个问题。 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
}
}
答案 0 :(得分:1)
即使您尝试在此处实例化,MediaPlayer
似乎也是null
R.raw.click
根据Docs
返回 MediaPlayer对象,如果创建失败,则返回null
因此,这告诉我们您的R.raw.clicks
可能丢失,拼写不正确或无法使用。这导致MediaPlayer
创建失败,从而使buttonClicks
成为null