请帮忙,这只是我正在开发的一个简单的Android应用程序,它意味着每次单击按钮时都会播放声音......当我慢速单击按钮时它会工作,但如果我单击按钮总是崩溃由于运行时错误 - NullPointerException!.....我不知道我做错了什么。
这是我的代码
公共类 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 http://developer.android.com/reference/android/media/MediaPlayer.html你会发现以下内容
public static MediaPlayer create (Context context, int resid)
...
返回 MediaPlayer 对象,如果创建失败则返回 null
这意味着您应该确保该行
final MediaPlayer i = MediaPlayer.create(Main.this, R.raw.sound);
不返回null
.
Edit:
我真的不知道如何处理这种情况,如果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();
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)