java - Java Android 应用 MediaPlayer 中的 NullPointerException

标签 java android eclipse nullpointerexception android-mediaplayer

请帮忙,这只是我正在开发的一个简单的Android应用程序,它的目的是在每次单击按钮时播放声音......当我慢速单击按钮时它可以工作,但如果我单击它总是崩溃由于运行时错误,按钮速度很快 - NullPointerException!.....我不知道我做错了什么。

这是我的代码

公共(public)类 Main 扩展 Activity 实现 OnClickListener{

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Button e = (Button) findViewById(R.id.Button1);
    e.setOnClickListener(this);    

}

public void onClick(View v){

    if(v.getId()==R.id.imageButton1){
    final MediaPlayer i = MediaPlayer.create(Main.this, R.raw.sound);
    i.setOnCompletionListener(new OnCompletionListener() {

        public void onCompletion(MediaPlayer mp) {
            i.release();                    
        }
    });

    i.start();  
    }       

}

}

最佳答案

这只是一个猜测,但在文档 here 中你会发现以下内容

public static MediaPlayer create (Context context, int resid) ... Returns a MediaPlayer object, or null if creation failed

这意味着您应该确保该行

final MediaPlayer i = MediaPlayer.create(Main.this, R.raw.sound);

不返回null

编辑:

如果 create(Context context, int resid) 失败,我真的不确定如何处理这种情况。但你必须这样做,因为甚至从文档中就可以清楚地看出它可能会发生。

要确定这确实是问题所在,只需忽略这种情况并从处理程序返回即可。 例如...

public void onClick(View v)
{
    if(v.getId() == R.id.imageButton1)
    {
        final MediaPlayer i = MediaPlayer.create(Main.this, R.raw.sound);

        if (i != null)
        {
            ...

            i.start();
        }
    }       
}

关于java - Java Android 应用 MediaPlayer 中的 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13332603/

相关文章:

java - 交换数组元素值

java - 尝试布局 JPanel。每次运行时Java程序布局都会改变

java - 由java代码创建的csv将所有数据写入同一行

android - 即使 list 声明 Activity 将处理方向更改,WebView 也会旋转

android - HCE是否可以双向通信?

java - jtree 图标缩放时的缩放大小

android - Intent Filter 不为 USB_ACCESSORY_ATTACHED 调用 onReceive

java - Eclipse:触发完全重建

升级到版本 10.0 后,适用于 Eclipse 的 Android ADT 插件无法正常工作

eclipse - Android L parseSdkContent失败无法初始化类android.graphics.Typeface