在我的应用中,我有这段代码:
@Override
public void onBackPressed() {
MediaPlayer buttonBack = MediaPlayer.create(this, R.raw.button_back);
buttonBack.start();
super.onBackPressed();
}
当您按下按钮时基本上播放声音。我已经在我的模拟器(Android 4.1.2)和我的三星Galaxy SIII Mini(Android 4.1.2)上尝试过它。一切正常,所以我已经将应用程序发送给了我的朋友,他的三星Galaxy Mini(Android 2.2.1)。他告诉我,当他回按钮时,他有时会崩溃,所以他给我发了LogCat,告诉我它在 按钮上按 NullPointerException .start(); 。
LogCat的图片:http://i.stack.imgur.com/Jgz5t.jpg
我尝试将 * MediaPlayer buttonBack = MediaPlayer.create(this,R.raw.button_back); * 更改为 * MediaPlayer buttonBack = MediaPlayer.create(getApplicationContext( ),R.raw.button_back); * ,但它没有任何效果。
有关此问题的任何解决方案吗?
答案 0 :(得分:0)
您可以解决此问题:
@Override
public void onBackPressed() {
MediaPlayer buttonBack = MediaPlayer.create(this, R.raw.button_back);
if (buttonBack != null) {
buttonBack.start();
}
super.onBackPressed();
}
有时候MediaPlayer.create会返回null。 但我想你可以忍受只是不播放MediaPlayer.create返回null的情况。或者,您可以尝试使用SoundPool或尝试播放不同的声音文件。