问题描述
java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“void android.media.MediaPlayer.start()”
- 我已经用其他 Android 版本进行了测试,使用媒体播放器时没有问题。
MediaPlayer mediaPlayer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main_play);
play=findViewById(R.id.play);
play.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mediaPlayer = MediaPlayer.create(MainPlay.this, R.raw.click);
mediaPlayer.start();
});
1楼
在启动媒体播放器之前,请检查一次是否不等于 null (!=nu)
像下面这样
play=findViewById(R.id.play);
mediaPlayer = MediaPlayer.create(MainPlay.this, R.raw.click);
play.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(mediaPlayer!=null)
mediaPlayer.start();
});
或者我建议在点击之外初始化媒体播放器,因为您正在尝试立即访问媒体播放器可能是原因 get null