简体   繁体   English

Android 2.2.1在音乐开始时崩溃()

[英]Android 2.2.1 crash on music start()

in my app I have this code: 在我的应用中,我有以下代码:

@Override
public void onBackPressed() {
    MediaPlayer buttonBack = MediaPlayer.create(this, R.raw.button_back);   
    buttonBack.start();
    super.onBackPressed();
}

which basically play sound when you hit back button. 当您按下返回按钮时,基本上可以播放声音。 I've tried it on my emulator (Android 4.1.2) and on my Samsung Galaxy SIII Mini (Android 4.1.2). 我已经在模拟器(Android 4.1.2)和Samsung Galaxy SIII Mini(Android 4.1.2)上进行了尝试。 Everything works fine, so I've sent app to my friend, who has Samsung Galaxy Mini (Android 2.2.1). 一切正常,因此我已将应用程序发送给了拥有三星Galaxy Mini(Android 2.2.1)的朋友。 He told me that he gets crash sometimes when he hit back button, so he sent me LogCat, which tell me that it throws NullPointerException on line buttonBack.start(); 他告诉我说他有时在按下后退按钮时会崩溃,所以他给我发送了LogCat,它告诉我它在buttonBack.start()行上抛出了NullPointerException .

image of LogCat: http://i.stack.imgur.com/Jgz5t.jpg LogCat的图像: http : //i.stack.imgur.com/Jgz5t.jpg

I've tried to change *MediaPlayer buttonBack = MediaPlayer.create(this, R.raw.button_back);* to *MediaPlayer buttonBack = MediaPlayer.create(getApplicationContext(), R.raw.button_back);* , but it did not have any effect. 我试图将* MediaPlayer buttonBack = MediaPlayer.create(this,R.raw.button_back); *更改为* MediaPlayer buttonBack = MediaPlayer.create(getApplicationContext(),R.raw.button_back); * ,但是没有有任何作用。

Any solution on this issue? 这个问题有解决方案吗?

You could workaround this problem: 您可以解决此问题:

@Override
public void onBackPressed() {
    MediaPlayer buttonBack = MediaPlayer.create(this, R.raw.button_back);   
    if (buttonBack != null) {
        buttonBack.start();
    }
    super.onBackPressed();
}

The thing is sometimes MediaPlayer.create returns null. 有时候是MediaPlayer.create返回null。 But I guess you can live with just not playing the sound for this case that MediaPlayer.create returns null. 但是我猜想,在MediaPlayer.create返回null的情况下,您可以不播放声音。 Alternatively you could try using a SoundPool or try playing a different sound file. 另外,您可以尝试使用SoundPool或尝试播放其他声音文件。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM